小明思考

          Just a software engineer
          posts - 124, comments - 36, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          日歷

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          相冊(cè)

          My blogs

          搜索

          •  

          最新評(píng)論

          數(shù)據(jù)結(jié)構(gòu)和算法

          posted @ 2013-05-22 22:25 小明 閱讀(6143) | 評(píng)論 (0)  編輯 |

          posted @ 2013-05-21 22:50 小明 閱讀(2125) | 評(píng)論 (0)  編輯 |

          posted @ 2013-05-20 21:09 小明 閱讀(2589) | 評(píng)論 (0)  編輯 |

          posted @ 2013-05-10 20:47 小明 閱讀(3242) | 評(píng)論 (4)  編輯 |

               摘要: 給定一個(gè)由n個(gè)整數(shù)組成的數(shù)組S,是否存在S中的三個(gè)數(shù)a,b,c使得 a+b+c=0?找出所有的不重復(fù)的和為0的三元組。

          注意:
          1.三元組的整數(shù)按照升序排列 a2.給出的結(jié)果中不能含有相同的三元組  閱讀全文

          posted @ 2013-05-01 23:13 小明 閱讀(1931) | 評(píng)論 (0)  編輯 |

               摘要: 給定兩個(gè)字符串S和T,計(jì)算S的子序列為T的個(gè)數(shù)。

          這里的字符串的子序列指的是刪除字符串的幾個(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 小明 閱讀(2135) | 評(píng)論 (0)  編輯 |

               摘要: 假設(shè)你有一個(gè)數(shù)組包含了每天的股票價(jià)格,它的第i個(gè)元素就是第i天的股票價(jià)格。

          設(shè)計(jì)一個(gè)算法尋找最大的收益。你可以最多進(jìn)行兩次交易。
          注意:你不能同時(shí)進(jìn)行多次交易,也就是說你買股票之前,必須賣掉手中股票。  閱讀全文

          posted @ 2013-04-25 22:22 小明 閱讀(2076) | 評(píng)論 (0)  編輯 |

               摘要: 假設(shè)你有一個(gè)數(shù)組包含了每天的股票價(jià)格,它的第i個(gè)元素就是第i天的股票價(jià)格。

          設(shè)計(jì)一個(gè)算法尋找最大的收益。你可以進(jìn)行任意多次交易。但是,你不能同時(shí)進(jìn)行多次交易,也就是說你買股票之前,必須賣掉手中股票。  閱讀全文

          posted @ 2013-04-19 21:50 小明 閱讀(1859) | 評(píng)論 (0)  編輯 |

               摘要: 假設(shè)你有一個(gè)數(shù)組包含了每天的股票價(jià)格,它的第i個(gè)元素就是第i天的股票價(jià)格。

          你只能進(jìn)行一次交易(一次買進(jìn)和一次賣出),設(shè)計(jì)一個(gè)算法求出最大的收益。  閱讀全文

          posted @ 2013-04-19 15:03 小明 閱讀(1593) | 評(píng)論 (0)  編輯 |

               摘要: 給定一個(gè)二叉樹,尋找最大的路徑和.
          路徑可以從任意節(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)  編輯 |

               摘要: 給定兩個(gè)單詞(一個(gè)開始,一個(gè)結(jié)束)和一個(gè)字典,找出所有的最短的從開始單詞到結(jié)束單詞的變換序列的序列(可能不止一個(gè)),并滿足:

          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)  編輯 |

               摘要: 給定兩個(gè)排序好的數(shù)組A和B,把B合并到A并保持排序。

          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 小明 閱讀(1292) | 評(píng)論 (0)  編輯 |

               摘要: 給定兩個(gè)單詞(一個(gè)開始,一個(gè)結(jié)束)和一個(gè)字典,找出最短的從開始單詞到結(jié)束單詞的變換序列的長度,并滿足:

          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)  編輯 |

               摘要: 給定一個(gè)二叉樹,每個(gè)節(jié)點(diǎn)的值是一個(gè)數(shù)字(0-9),每個(gè)從根節(jié)點(diǎn)到葉節(jié)點(diǎn)均能組成一個(gè)數(shù)字。
          比如如果從根節(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)  編輯 |

          Full 數(shù)據(jù)結(jié)構(gòu)和算法 Archive

          主站蜘蛛池模板: 安陆市| 大新县| 德庆县| 安宁市| 乐安县| 博乐市| 德清县| 华坪县| 隆子县| 特克斯县| 榆社县| 集贤县| 无锡市| 宣化县| 扎鲁特旗| 安国市| 灵台县| 资中县| 邹城市| 峡江县| 临泉县| 岳普湖县| 万州区| 句容市| 陕西省| 祁门县| 从化市| 新昌县| 武定县| 秦皇岛市| 若尔盖县| 磴口县| 政和县| 天峨县| 谢通门县| 忻州市| 鄂尔多斯市| 合山市| 永胜县| 简阳市| 大埔县|