2023-10-16 LeetCode每日一题(只出现一次的数字 III)

2023-10-16每日一题

一、题目编号

复制代码
260. 只出现一次的数字 III

二、题目链接

点击跳转到题目位置

三、题目描述

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。
示例 1:

示例 2:

示例 3:

提示:

  • 2 <= nums.length <= 3 * 104
  • -231 <= nums[i] <= 231 - 1
  • 除两个只出现一次的整数外,nums 中的其他数字都出现两次

四、解题代码

cpp 复制代码
class Solution {
public:
    vector<int> singleNumber(vector<int>& nums) {
        int mask = 0;
        for(int i = 0; i < nums.size(); ++i){
            mask ^= nums[i];
        }
        int h = 1;
        while(!(h&mask)){
            h <<= 1;
        }
        int a = 0, b = 0;
        for(int i = 0; i < nums.size(); ++i){
            if(h&nums[i]){
                a ^= nums[i];
            }
            else{
                b ^= nums[i];
            }
        }
    return {a, b};
    }
};

五、解题思路

(1) 哈希表。

相关推荐
Wilber的技术分享几秒前
【LeetCode高频手撕题 2】面试中常见的手撕算法题(小红书)
笔记·算法·leetcode·面试
邪神与厨二病3 分钟前
Problem L. ZZUPC
c++·数学·算法·前缀和
梯度下降中1 小时前
LoRA原理精讲
人工智能·算法·机器学习
IronMurphy1 小时前
【算法三十一】46. 全排列
算法·leetcode·职场和发展
czlczl200209251 小时前
力扣1911. 最大交替子序列和
算法·leetcode·动态规划
靴子学长2 小时前
Decoder only 架构下 - KV cache 的理解
pytorch·深度学习·算法·大模型·kv
寒秋花开曾相惜2 小时前
(学习笔记)3.8 指针运算(3.8.3 嵌套的数组& 3.8.4 定长数组)
java·开发语言·笔记·学习·算法
Гений.大天才2 小时前
2026年计算机领域的年度主题与范式转移
算法
njidf3 小时前
C++与Qt图形开发
开发语言·c++·算法
ZoeJoy83 小时前
算法筑基(一):排序算法——从冒泡到快排,一文掌握最经典的排序算法
数据结构·算法·排序算法