posted @ 2013-05-22 22:25 小明 閱讀(6143) | 評(píng)論 (0) 編輯 |
數(shù)據(jù)結(jié)構(gòu)和算法
posted @ 2013-05-21 22:50 小明 閱讀(2125) | 評(píng)論 (0) 編輯 |
posted @ 2013-05-20 21:09 小明 閱讀(2590) | 評(píng)論 (0) 編輯 |
posted @ 2013-05-10 20:47 小明 閱讀(3242) | 評(píng)論 (4) 編輯 |
注意:
1.三元組的整數(shù)按照升序排列 a2.給出的結(jié)果中不能含有相同的三元組 閱讀全文
posted @ 2013-05-01 23:13 小明 閱讀(1931) | 評(píng)論 (0) 編輯 |
這里的字符串的子序列指的是刪除字符串的幾個(gè)字符(也可以不刪)而得到的新的字符串,但是不能改變字符的相對(duì)位置。
比如“ACE”是“ABCDE”的子序列,但是“AEC”就不是。
如果S=“rabbbit” T=“rabit”,有3種不同的子序列為T的構(gòu)成方法,那么結(jié)果應(yīng)該返回3。 閱讀全文
posted @ 2013-04-26 23:33 小明 閱讀(2042) | 評(píng)論 (1) 編輯 |
class TreeLinkNode {
TreeLinkNode left;
TreeLinkNode right;
TreeLinkNode next;
}
要求把所有節(jié)點(diǎn)的next節(jié)點(diǎn)設(shè)置成它右邊的節(jié)點(diǎn),如果沒有右節(jié)點(diǎn),設(shè)置成空。初始狀態(tài),所有的next的指針均為null.
要求:你只能使用常數(shù)的空間。
比如:
1
/ \
2 3
/ \ \
4 5 7
應(yīng)該輸出:
1 -> NULL
/ \
2 -> 3 -> NULL
/ \ \
4-> 5 -> 7 -> NULL 閱讀全文
posted @ 2013-04-26 11:23 小明 閱讀(2136) | 評(píng)論 (0) 編輯 |
設(shè)計(jì)一個(gè)算法尋找最大的收益。你可以最多進(jìn)行兩次交易。
注意:你不能同時(shí)進(jìn)行多次交易,也就是說你買股票之前,必須賣掉手中股票。 閱讀全文
posted @ 2013-04-25 22:22 小明 閱讀(2076) | 評(píng)論 (0) 編輯 |
設(shè)計(jì)一個(gè)算法尋找最大的收益。你可以進(jìn)行任意多次交易。但是,你不能同時(shí)進(jìn)行多次交易,也就是說你買股票之前,必須賣掉手中股票。 閱讀全文
posted @ 2013-04-19 21:50 小明 閱讀(1860) | 評(píng)論 (0) 編輯 |
你只能進(jìn)行一次交易(一次買進(jìn)和一次賣出),設(shè)計(jì)一個(gè)算法求出最大的收益。 閱讀全文
posted @ 2013-04-19 15:03 小明 閱讀(1593) | 評(píng)論 (0) 編輯 |
路徑可以從任意節(jié)點(diǎn)開始到任意節(jié)點(diǎn)結(jié)束。(也可以是單個(gè)節(jié)點(diǎn))
比如:對(duì)于二叉樹
1
/ \
2 3
和最大的路徑是2->1->3,結(jié)果為6
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/ 閱讀全文
posted @ 2013-04-18 21:31 小明 閱讀(4017) | 評(píng)論 (0) 編輯 |
1.每次只能變換一個(gè)字母
2.所有的中間單詞必須存在于字典中
比如:
輸入:
start = "hit"
end = "cog"
dict = ["hot","dot","dog","lot","log"]
那么最短的變化序列有兩個(gè)
["hit","hot","dot","dog","cog"],
["hit","hot","lot","log","cog"]。
注意:
1. 所有單詞的長度都是相同的
2. 所有單詞都只含有小寫的字母。 閱讀全文
posted @ 2013-04-18 17:32 小明 閱讀(1375) | 評(píng)論 (0) 編輯 |
public class Solution {
public void merge(int A[], int m, int B[], int n) {
//write your code here }
}
注意:
假定A有足夠的額外的容量儲(chǔ)存B的內(nèi)容,m和n分別為A和B的初始化元素的個(gè)數(shù)。要求算法復(fù)雜度在O(m+n)。 閱讀全文
posted @ 2013-04-18 13:44 小明 閱讀(1294) | 評(píng)論 (0) 編輯 |
1.每次只能變換一個(gè)字母
2.所有的中間單詞必須存在于字典中
比如:
輸入:
start = "hit"
end = "cog"
dict = ["hot","dot","dog","lot","log"]
那么最短的變化序列是"hit" -> "hot" -> "dot" -> "dog" -> "cog",所以返回長度是5。
注意:
1. 如果找不到這樣的序列,返回0
2. 所有單詞的長度都是相同的
3. 所有單詞都只含有小寫的字母。 閱讀全文
posted @ 2013-04-18 12:46 小明 閱讀(1527) | 評(píng)論 (0) 編輯 |
比如如果從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的路徑是1-2-3,那么這代表了123這個(gè)數(shù)字。
求出所有這樣從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的數(shù)字之和。
比如,對(duì)于二叉樹
1
/ \
2 3
一共有兩條路徑1->2和1->3,那么求和的結(jié)果就是12+13=25
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int sumNumbers(TreeNode root) {
//write c 閱讀全文
posted @ 2013-04-16 11:37 小明 閱讀(2549) | 評(píng)論 (1) 編輯 |
例子-輸入:
X X X X
X O O X
X X O X
X O X X
應(yīng)該輸出:
X X X X
X X X X
X X X X
X O X X
public void solve(char[][] board) {
} 閱讀全文
posted @ 2013-04-15 18:17 小明 閱讀(1567) | 評(píng)論 (2) 編輯 |
要求返回所有可能的分割。
比如,對(duì)于字符串s="aab",
返回:
[
["aa","b"],
["a","a","b"]
]
閱讀全文
posted @ 2013-04-15 13:52 小明 閱讀(1511) | 評(píng)論 (0) 編輯 |
public class Solution {
public int[] plusOne(int[] digits) {
}
} 閱讀全文
posted @ 2013-04-15 11:22 小明 閱讀(1385) | 評(píng)論 (3) 編輯 |
計(jì)算和返回x的平方根。 閱讀全文
posted @ 2013-04-15 10:19 小明 閱讀(1475) | 評(píng)論 (0) 編輯 |
比如對(duì)于數(shù)組[100, 4, 200, 1, 3, 2],其中最長序列為[1,2,3,4],所以應(yīng)該返回4
public class Solution {
public int longestConsecutive(int[] num) {
//write your code here
}
} 閱讀全文
posted @ 2013-04-12 15:58 小明 閱讀(2424) | 評(píng)論 (7) 編輯 |
求最少的分割次數(shù)。 閱讀全文
posted @ 2013-04-11 11:24 小明 閱讀(4153) | 評(píng)論 (3) 編輯 |
posted @ 2013-04-02 14:04 小明 閱讀(407) | 評(píng)論 (0) 編輯 |
posted @ 2011-10-25 13:28 小明 閱讀(1831) | 評(píng)論 (3) 編輯 |