
Divide and Conquer
文章平均质量分 71
努力努力再努力r
这个作者很懒,什么都没留下…
展开
-
Divide and Conquer:169. Majority Element
这是到求众数的问题,有很多种解法,其中我感觉比较好的有两种,一种是用哈希表,这种方法需要O(n)的时间和空间,另一种是用一种叫摩尔投票法 Moore Voting,需要O(n)的时间和O(1)的空间,比前一种方法更好。这种投票法先将第一个数字假设为众数,然后把计数器设为1,比较下一个数和此数是否相等,若相等则计数器加一,反之减一。然后看此时计数器的值,若为零,则将当前值设为候选众数。以此类推直到遍原创 2017-10-23 22:29:38 · 204 阅读 · 0 评论 -
Divide and Conquer:241. Different Ways to Add Parentheses
分而治之。对于输入字符串,若其中有运算符,则将其分为两部分,分别递归计算其值,然后将左值集合与右值集合进行交叉运算,将运算结果放入结果集中;若没有运算符,则直接将字符串转化为整型数放入结果集中。 对于当前表达式,对每一个操作符,将其左边的表达式组合一下搞一个list出来,将其右边的表达式组合一下搞一个List出来,用当前操作符把两个List搞一下,返回一个新的list去,代表当前表达式的所有原创 2017-10-23 22:59:44 · 154 阅读 · 0 评论 -
Divide and Conquer:215. Kth Largest Element in an Array
这道题找数组中第k大的数。 可以用排序,可以用堆。下面是用堆的方法,把前面k-1个最大的数弹出来就可以。 class Solution { public: int findKthLargest(vector& nums, int k) { priority_queue pq(nums.begin(), nums.end()); for (int i =原创 2017-10-23 23:24:19 · 147 阅读 · 0 评论