原创 結構型設計模式-適配器模式

什麼是適配器模式? 好比我們生活中電腦的插頭都是三極的,而我們面前只有一個二極的插座是空閒的,這個時候我們就要弄一個適配器,目的是讓我們的三極插頭能從二極插座中獲取電能。適配器模式就是這樣一個適配器,一個類與一個不相通的接口(就是內部方法

原创 [我的PHP之旅] YII框架學習 02.控制器 視圖 模型

用控制器寫一個Hello World 根據上一篇博文中的文件結構與Http請求的生命週期,我們知道每一個請求發給入口腳本再到應用主題,應用主體會創建一個控制器來處理這個應用,那麼我們就寫一個輸出Hello World的控制器吧。 name

原创 程序員面試金典 2.3 訪問單個節點的刪除

題目 實現一個算法,刪除單向鏈表中間的某個結點,假定你只能訪問該結點。 給定帶刪除的節點,請執行刪除操作,若該節點爲尾節點,返回false,否則返回true 我的題解 /* struct ListNode { int val;

原创 結構型設計模式-外觀模式

什麼是外觀模式? 外觀模式爲子系統中的一組接口提供了同意的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。 外觀模式中,客戶對各個具體的子系統是不瞭解的,所以對這些子系統進行了封裝,對外只提供了用戶所明白的單一而簡

原创 [我的PHP之旅] YII框架學習 01.安裝與配置

關於YII 這是一款快速,安全,專業的 PHP 框架,自帶了豐富的功能 ,包括 MVC,DAO/ActiveRecord,I18N/L10N,緩存,身份驗證和基於角色的訪問控制,腳手架,測試等,可顯著縮短開發時間。 而且我個人覺得這個框架

原创 程序員面試金典 1.7 清除行列

題目 請編寫一個算法,若MxN矩陣中某個元素爲0,則將其所在的行與列清零。 給定一個MxN的int[][]矩陣(C++中爲vector>)mat和矩陣的階數n,請返回完成操作後的int[][]矩陣(C++中爲vector>),保證n小於

原创 程序員面試金典 2.2 鏈表中倒數第k個結點

題目 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 我的題解 class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k)

原创 程序員面試金典 2.5 鏈式A+B

題目 有兩個用鏈表表示的整數,每個結點包含一個數位。這些數位是反向存放的,也就是個位排在鏈表的首部。編寫函數對這兩個整數求和,並用鏈表形式返回結果。 給定兩個鏈表ListNode* A,ListNode* B,請返回A+B的結果(Lis

原创 程序員面試金典 2.8 用兩個棧實現隊列

題目 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型 我的題解 import java.util.Stack; public class Solution { Stack<Integer> s

原创 [我的PHP之旅] YII框架學習 03.連接數據庫(使用ActiveRecord)

隨意準備一個數據表 CREATE TABLE `entry` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `value` VARCHAR(12) NULL DEFAULT NULL,

原创 程序員面試金典 2.4 鏈表分割

題目 編寫代碼,以給定值x爲基準將鏈表分割成兩部分,所有小於x的結點排在大於或等於x的結點之前 給定一個鏈表的頭指針 ListNode* pHead,請返回重新排列後的鏈表的頭指針。注意:分割以後保持原來的數據順序不變。 我的題解 /*

原创 程序員面試金典 2.7 集合棧

題目 請實現一種數據結構SetOfStacks,由多個棧組成,其中每個棧的大小爲size,當前一個棧填滿時,新建一個棧。該數據結構應支持與普通棧相同的push和pop操作。 給定一個操作序列int[][2] ope(C++爲vector

原创 程序員面試金典 1.6 像素翻轉

題目 有一副由NxN矩陣表示的圖像,這裏每個像素用一個int表示,請編寫一個算法,在不佔用額外內存空間的情況下(即不使用緩存矩陣),將圖像順時針旋轉90度。 給定一個NxN的矩陣,和矩陣的階數N,請返回旋轉後的NxN矩陣,保證N小於等於