上一页 1 2 3 4 5 6 ··· 45 下一页
摘要: 229. 求众数 II 摩尔投票法,因为数组里>n/3的数最多有两个,所以声明两个变量n1,n2和两个计数器c1,c2,一开始都初始化为0,当遍历数组的时候: 当前元素=n1时,c1++; 当前元素=n2时,c2++; 当c1=0时,n1=当前元素,同时c1=1; 当c2=0时,n2=当前元素,同时 阅读全文
posted @ 2020-07-06 13:18 branna 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 169. 多数元素 摩尔投票法,先设置一个暂时的答案即x=nums[0],然后用一个计数器ii=0;当遍历数组元素的时候,当ii不为0的时候,判断x和nums[i]的大小,nums[i]和x相等的话,ii++,否则ii--;当ii减小到0的时候这时候就应该更新x的值了,同时ii++;这样一次遍历最后 阅读全文
posted @ 2020-07-05 21:10 branna 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1266. 访问所有点的最小时间 自己画出几个例子就能发现规律,当 \(abs(x1-x2)=abs(y1-y2)\) 的长度相等时,那么最小的距离就是 \(abs(x1-x2)\), 否则就是两边那个较大的。 class Solution { public: int minTimeToVisitA 阅读全文
posted @ 2020-07-03 22:51 branna 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 面试题 17.19. 消失的两个数字 这道理难点在于O(n)时间复杂度,O1的空间复杂度,我们可以在nums数组的对应位置的元素上加上30000,当更新元素时该位置的nums元素值大于了30000,那么说明前面有个元素的值为现在的元素位置的下标,我们只要 \(nums[nums[i]-30000]+ 阅读全文
posted @ 2020-07-02 18:36 branna 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 167. 两数之和 II - 输入有序数组 第一种方法是利用map存入每个数,然后遍历原数组,判断target-numbers[i]存不存在map数组里,若存在返回两个数的下标即可,利用lower_bound会出错,因为当你本身是2的时候,目标是4,那么返回的是同一个位置的值,所以应当用upper_ 阅读全文
posted @ 2020-06-29 20:29 branna 阅读(141) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 45 下一页