Leetcode7月30日打卡

97 阅读1分钟

1.leetcode18题 四数之和

用的方法和三数之和一样! 只不过多了一层循环j,然后注意! 为了防止j的重复,num[j] == nums[j - 1] 必须跳过! 但是这个跳过的地方,必须是 从i + 1 这里开始以后才跳,自己一开始是写的j >0 的时候跳,就会出现问题, 比如0000的时候

2.leetcode 191题 位运算1的个数

很简单的位运算,计算1的个数,之前剑指offer上做过,但是这里 和之前不一样,之前是全是整数,这里有可能出现负数,当时是 n > 0 作为循环while的条件,但是如果是负数的情况,这里就不能生效,必须用n != 0 这样最保险

3.leetcode169题 个数超过一半的数

自己一开始用过的hashmap,思路很简单但是不太符合要求

可以循环一次,相同count++ 不相同--,如果超过一半,那么这个数最后计数是肯定> 0的

4.leetcode229题 个数超过1/3的数

第一种情况 有两个 这种是最正常的 111 的消耗,最后剩下两个

第二种 有一个 12的消耗,因为是两个变量,所以非答案值, 一次会消耗2

第三种 一个都没有,如果不加最后一个判断,有可能会出现错误!因此最后必须遍历一遍,判断一下答案是否符合要求