所有标签

#LeetCode

12 篇相关内容

图文

137. 只出现一次的数字 II题目示意图 1
图文

137. 只出现一次的数字 II

题目 题解 方法一 - 直接用哈希表出现 3 次则从哈希表移除,最后剩下的就是结果 方法二 - 其余元素都出现三次,其中某个元素只出现一次,将每个元素都转化为二进制,则可能的结果为 4 个数都相同或者 3 个数都相同 - 同一位结果可能为 0000、1111、0001、1110 - 通过位运算得出所有该位的和,对 3 进行取模则得出结果数字该位的值

1488. 避免洪水泛滥题目示意图 1
图文

1488. 避免洪水泛滥

题目 题解 - 默认对所有天数填写默认值,即都抽 1 号湖泊 - 用 Map 存储湖泊编号和下雨天的对应关系 - 把所有的空闲日子(不下雨的天数)存起来,注意要使用 TreeSet,因为后面需要进行比较 - 遍历数组 - 不下雨:将 i 天存储到 TreeSet 中,等后面再选择这一天抽哪个湖泊 - 下雨:如果下雨的湖泊已经有水,则判断有水后至今期间有没有空闲日子 - 有空闲:设置那天为抽水,并移除该空闲日子,使用 TreeSet.ce

260. 只出现一次的数字 III题目示意图 1
图文

260. 只出现一次的数字 III

题目 题解 题解一 - 直接使用 HashSet 判断 题解二 - 对数组所有元素求异或,得到的值为那两个不同元素的异或结果 - 明确那两个数肯定不同,所以肯定有的位数异或后结果为 1 - 假如第 x 位异或的结果为 1,即所有数的 x 位异或结果为 1 - 找到 x 的最小值 - 现在数组中只有两类数:x 位为 0 的,和 x 位为 1 的,并且这两个不同的数的 x 位还不同 - 通过 & 操作,将数组氛围两类 - 最后问题拆解为 1

9. 回文数题目示意图 1
图文

9. 回文数

题目 题解 - 小于 0 肯定不满足条件 - 大于 0 且尾数为 0,则不满足条件 题解一: 直接转换成字符串,然后 reverse 比较一下。但是题目中有写: 进阶:你能不将整数转为字符串来解决这个问题吗? 所以肯定不能使用这种方式! 题解二: - 对数字进行反转 题解三: - 既然是回文数,那就反转一半的数字即可 - 如何知道反转到一半了 - tmp 不断减少位数,当 tmp 小于 res 时,说明反转到一半或者一半过一位了 - 总