摘要: 第一题是Two Sum 同样是用哈希表来做,需要注意的是在查打gap是要排除本身。比如target为4,有一个值为2,gap同样为2。 vector<int> twoSum(vector<int> &num, int target) { unordered_map<int, int> mapping 阅读全文
posted @ 2016-05-14 15:02 牧马人夏峥 阅读(229) 评论(0) 推荐(0)
摘要: 这题要仔细体会下哈希表的用法,要注意的是数组本身是无序的,因此需要向左右进行扩张。 另外这个思路可以进行聚类,把连续的标记为一类。 int longestConsecutive(const vector<int> &num) { unordered_map<int, bool> used; for 阅读全文
posted @ 2016-05-14 14:22 牧马人夏峥 阅读(135) 评论(0) 推荐(0)
摘要: 找两个排好序的数组的中间值,实际上可以扩展为寻找第k大的数组值。 参考下面的思路,非常的清晰: 代码: double findMedianofTwoSortArrays(int A[], int B[], int m, int n) { int total = m + n; //判断序列长度的奇偶, 阅读全文
posted @ 2016-05-14 13:31 牧马人夏峥 阅读(138) 评论(0) 推荐(0)