Time of Update: 2014-05-15
在做使用者尋找時 因為要把尋找的結果動態載入和顯示,所以,那些html元素要由Ajax動態產生。使用者開啟尋找介面時,有系統推薦的使用者,而當使用者按條件尋找後,尋找的結果動態載入和顯示。所以考慮到用js來搞。這個for迴圈就是移除已有的表單。然後根據Ajax請求過來的資料,動態產生新的表單對象。一定要注意j變數從大往小迴圈,否則,刪除div元素後會引起serchResultLenth=serchResult.children.length;長度的變化(這個問題摸索了好久,才搞定,切記)for(
Time of Update: 2014-05-15
總結一些我們在平時使用vim編輯器的一些實用功能,後續會一直更新。1. visual外掛程式visual外掛程式其實相當於一個書籤作用,比如我們在一篇很長的原始碼檔案中,我們可以標記一行,然後後來我們再想回到這一行時,只需要一個快速鍵就能迅速定位到這一行,非常方便,不用不停地往上或往下翻。1.1 常用命令1. mm標記一個標籤;2. F2回到被標記的那一行;3. 連續按兩次mm就可以取消標籤;4.
Time of Update: 2014-05-15
Asp 解析 XML並分頁顯示Asp 解析 XML並分頁顯示,樣本源碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html
Time of Update: 2014-05-15
一、基本選取器 1)ID選取器 2)標籤選取器 3 ) 類別選取器 4 ) 萬用字元選取器二、層級選取器 1 ) 包含選擇器 2 ) 子選取器 3 ) 相鄰選取器 4 ) 兄弟選取器三、簡單的偽類別選取器1 ) 特定位置選取器2 ) 指定範圍選取器 3 ) 排除選取器四、與內容相關的偽類別選取器1 ) 匹配包含文本選取器2) 匹配包含元素選取器3 )
Time of Update: 2014-05-15
產生組合數是初中的知識,沒有人不知道。組合數學我認為是最有意思的數學分支,室友應該是這方面的專家,他的紙牌問題我聽都聽不懂。。不知道你們是什麼感覺,我以看到組合數,馬上會想到全排列,這可能是因為當時初中的時候,這兩部分知識是放在一起講的,也確實有一些聯絡。怎樣產生全排列演算法課在遞迴的那部分講過,寫的也比較多,很多字串的問題我都忍不住想用全排列試一下。那能不能用遞迴的方法來產生組合數呢?答案當然是肯定的,畢竟這種事情遞迴再合適不過了。遞迴的關鍵是什麼呢,怎樣把大規模轉化成小規模,然後小規模再一層
Time of Update: 2014-05-15
這個題的接受率好低,搞得我一直不敢做。後來認真的看了一下題目,不是很難嘛,字串的題目ac率就是低,除了難,還因為它的測試案例太多。思路不難,主要是因為特殊情況太多。純類比,我把所有的情況羅列一下,仔細一點的話就能寫好了。1. 當word為空白,也就是""時,應該返回一行跟L數目相等的空格。這種情況需要提前判斷和處理。2.
Time of Update: 2014-05-15
這道題之前沒見過,一上來還真不知道怎麼做。問題的限制條件,樹是完全二叉樹其實並不是關鍵,只不過是一個簡化的條件而已。那關鍵是什麼呢?如何從當前節點跳到下一個開始的節點。我的做法是,每次從一層的最左邊節點開始,一層一層的走。其實只有兩種形式的next指標需要我們來更新,第一種,同一個節點的左右孩子,第二種,父親相鄰時,左邊父親的右孩子和右邊父親的左孩子之間。完全二叉樹的簡化就體現在更新的過程,因為完全,所以有孩子肯定是雙胞胎,因為完全,所以兩個父親的孩子之間關係很直接。class
Time of Update: 2014-05-15
好,二叉搜尋樹粉末登場,有關他的問題有這麼幾個,給你一個n,怎樣求所有的n個節點的二叉搜尋樹個數?能不能把所有的這些二叉搜尋樹列印出來?這道題倒不用考慮這麼多,直接轉就行了,我用的思想是分治,每次找到一半的位置,分離出中間節點,作為新子樹的根節點,然後遞迴構造前半部分和後半部分。class Solution {public: TreeNode *sortedListToBST(ListNode *head) { if(head == NULL)
Time of Update: 2014-05-15
這是道好題。題目指明了路徑的起點和重點是任意的,可以是一個節點可以是包含父節點和左右子樹的路徑。問題的關鍵是,這個左右子樹返回的不能是整個樹的最大和,而只能是包含了這個子樹根節點的一條左路徑或者右路徑。也不知道這麼說是否明白,畫圖說明是在太麻煩了。。這麼說吧,題目雖然對路徑的條件沒有限制,但是路徑還是要求的,如果直接返回左右子樹的結果,那麼這個結果可能是來自於一個葉子節點,也可能是整個子樹,什麼都有可能,當這個結果實際上是由不包含子樹的根節點計算出來的,那麼接到上一層的時候,用了這個結果,而實際
Time of Update: 2014-05-15
這道題的思路還是比較清晰的,用棧嘛,麻煩是麻煩在這些層次的細節上。主要有下面幾個:./和/:當前路徑,遇到這種,應該將後面的檔案夾或檔案入棧。../:上一層路徑,遇到這種,應該做一次出棧操作,相當於返回了上一層目錄。//:可以直接簡化成‘/’。還有下面幾個要注意的測試案例:1. linux的路徑名可以含有很多特殊字元,比如“_”,".","*"等等,所以要特別注意含有"."的哪些路徑名。2.
Time of Update: 2014-05-15
這道題乍看下來非常簡單,實際上要注意的問題非常多。注意看給出來的函數的介面,返回的是int值,也就是計算結果是個近似值。怎樣求呢?難道是從2開始往上算?直到某個值正好接近x?當然不行,肯定逾時了。再仔細想一下,對了,有二分法,從最大的開始,每次計算一下平方,如果結果比x大,那麼縮短上界,否則提高下界。思想很正確,下面的問題是最大的那個值是多少?你會毫不猶豫的說出是x啊,x的平方根肯定比x小吧。好,那如果x是INT_MAX呢,你
Time of Update: 2014-05-15
有關樹的問題還是比較簡單的,遞迴遞迴遞迴,遞迴一萬年。不,你說還有,遍曆遍曆遍曆,遍曆一萬年,哈哈。一般的問題藉助前中後層序都可以比較優雅的解決掉,遍曆的時候常用遞迴,如果層序,可能需要藉助隊列。這道題其實沒什麼好說的,父親們在構成的數字中位元靠前,一定是先序遍曆嘛,到達葉子更新一下總和。這裡說實驗室一個同學面試遇到的更有意思的問題,也是樹的。已知樹上兩個節點有祖先和後輩的關係,怎樣只用一次遍曆把所有他們之間所有節點染成紅色?答案是後序遍曆。為什麼呢,我直觀的講,樹的本質是什麼呢,是一個倫理問題
Time of Update: 2014-05-15
這道題我覺得題目說的不是很明白,應該再具體舉幾個列子說明一下的,讓我這英語渣渣的人理解偏了。。題目的意思是,當rate比他旁邊的人大時,拿的糖一定要比他多,這並不代表一樣rate的人,拿到的糖要一樣多。我一開始以為同樣rate的人必須保證公平,思想太共產主義了。那樣我的想法是按rate排名,一層一層的更新。。這個題的解法就簡單多了,應該是最直接的打表。先從左往右掃一遍,如果當前小朋友rate比左邊的大,那他拿的糖就要比他多一塊兒。然後再從右往左掃一遍,如果當前小朋友rate高,並且拿的糖卻少,就
Time of Update: 2014-05-15
這種類似大整數的處理的問題還是比較常見的,這道題應該是非常簡單的版本。題目的要求是這樣的,輸入的vector靠前的位置是數位高位,因此應該先求出長度,然後從後面往前算。維護一個變數儲存進位,這我就不說了。結果的vector怎麼辦呢?因為最後有可能有個總的進位,比如999加1,結果的vector會比輸入的多出一位,因此結果還是從前往後存簡單一些。最後如果有進位,就多push_back一個1,然後reverse一下就行了,我當時不知道這個函數,所以又獻醜了。class
Time of Update: 2014-05-15
其他出現兩次,只有一個出現一次的那道題我就不更了,直接抑或,最後的結果就是那個數。為什麼可以這樣做呢?因為一個32位int,如果所有數都出現了兩次,那麼為1的那些位統計的個數一定是2的倍數,抑或之後全變成0。一個數出現了一次,它為1的那些位上,1的個數必定是奇數,抑或之後一定還是1。我之前知道出現兩次這個題的解法,但是理解的不夠深,以為抑或是關鍵,其實不是,出現了偶數次才是關鍵。理解了這點,推廣到出現3次上,如果所有的出現了三次,那麼為1的那些位1的個數一定是三的倍數,那如果有一個數出現了一次呢
Time of Update: 2014-05-15
不是很明白出題人的意圖,其實這道題用java的話簡直是太簡單了,用split處理一下,得到所有單詞的一個數組,然後求最後一個的長度就行了。我個人覺得java裡最成功的函數就是split了,我做工程時幾乎總能用到它,方便強大。c++裡面稍微複雜一些,不過這也算是最簡單的字串的問題了。函數的介面決定了字串的長度是未知的,要自己迴圈找一下,然後從尾向頭找不等於空格的字元,找到了就找到了最後一個單詞,然後累計直到空格結束。class Solution
Time of Update: 2014-05-15
看到這個題我就傷心啊,去微軟面試的時候,第一個面試官讓我做的題目就是實現集合的交操作,這個集合中的元素就像這裡的interval一樣,是一段一段的。當時寫的那叫一個慘不忍睹,最後果然被拒掉了。。好好練習演算法,爭取正式招聘的時候拒一次微軟,哈哈~說歸說,這道題其實還是比較簡單的。先考慮什麼樣子的集合是可以合并的。設兩段集合是[a, b]和[c, d],不失一般性的,假設a<c,那麼有下面幾種情況:1. b<c,這說明兩段是完全不相交的,沒辦法合并。2.
Time of Update: 2014-05-15
二叉平衡樹好火啊,幾乎每個公司的筆試題裡都有它,考了好多次我都不會,掛筆試很有可能就是因為它,還有一個它的同夥叫二叉搜尋樹,貌似人氣比它還要高一些。二叉平衡樹是什麼樣的樹呢,是每個節點的左右子樹高度相差絕對值都不超過1。好,你說你終於回了,這不很簡單嗎,求一下根節點的左右字數高度,如果滿足,他就是,否則就不是嘛。不是啊親,要求是所有節點都滿足這個條件,判斷的時候必須每個節點都驗證的!扯了這麼長,其實看看代碼就明白了,怎麼有種在貼吧發言要湊夠15字的感覺。int
Time of Update: 2014-05-15
這道題的難度跟微軟的那道面試題相當。要在集合中插入一段新的集合,相當於求兩個集合的並了。對於新加入一段集合的情況,分為下面幾種:1. 加入段跟原來的完全相交,也即他的起點和終點都在被包含在原來的段中了。這種情況要合并這之間的段,最終加入段的起點是原來段的起點,終點是原來段的終點。2. 加入段的起點與原來的相交,終點沒有相交,最終加入的段的起點是起點相交的段的起點,終點是加入段的終點。3. 加入段的終點與原來的相交,起點沒有相交,最終加入段的起點是加入段的起點,終點是相交段的終點。4.
Time of Update: 2014-05-15
今天再看這個題時,死活想不起這個單詞是什麼意思,查了字典都不知道,真暈了。這個單詞直譯是顛倒順序所形成的單詞,實際上就是從集合中找出所有是由一組字母形成的那些單詞,這種可以由很多組,即只要這組字母形成的字典中的單詞多於1個,就要把這些單詞輸出出來。怎麼做呢?思路還是很簡單的,要找出是由一組字母形成的單詞,顯然應該知道每一個單詞是由哪些字母形成的,這當然可以建一個hash表,每次都比對hash表中的每一個位置的個數是不是相等,有沒有更好的辦法呢?有的,就是把這個hash錶轉化成一個string,這