137. 只出现一次的数字 II

2023年 10月 15日 56.9k 0

题目

题解

方法一

  • 直接用哈希表出现 3 次则从哈希表移除,最后剩下的就是结果
class Solution {
    public int singleNumber(int[] nums) {

        Map map = new HashMap();
        for (int num : nums) {
            Integer integer = map.getOrDefault(num, 0);
            if (integer == 2) {
                map.remove(num);
            } else {
                map.put(num, integer + 1);
            }
        }
        for (Integer i : map.keySet()) {
            return i;
        }
        return 0;
    }
}

方法二

  • 其余元素都出现三次,其中某个元素只出现一次,将每个元素都转化为二进制,则可能的结果为 4 个数都相同或者 3 个数都相同
  • 同一位结果可能为 0000111100011110
  • 通过位运算得出所有该位的和,对 3 进行取模则得出结果数字该位的值
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for (int i = 0; i > i & 1;
}
// 将不同的数补到 res 后面
res |= sum % 3

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论