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) 哈希表。

相关推荐
数据分析螺丝钉7 分钟前
LeetCode 252 会议室 III(Meeting Rooms III)题解与模拟面试
算法·leetcode·职场和发展
小李独爱秋10 分钟前
动态哈希映射深度指南:从基础到高阶实现与优化
数据结构·算法·哈希算法
猫猫头有亿点炸19 分钟前
C语言斐波拉契数列2.0
c语言·开发语言·算法
写个博客38 分钟前
代码随想录算法训练营第二十六天
算法
海底火旺1 小时前
寻找缺失的最小正整数:从暴力到最优的算法演进
javascript·算法·面试
优美的赫蒂1 小时前
理解欧拉公式
线性代数·算法·数学建模
Pasregret2 小时前
策略模式:动态切换算法的设计智慧
算法·bash·策略模式
努力学习的小廉2 小时前
【C++】 —— 笔试刷题day_21
开发语言·c++·算法
周杰伦_Jay2 小时前
continue插件实现IDEA接入本地离线部署的deepseek等大模型
java·数据结构·ide·人工智能·算法·数据挖掘·intellij-idea
江沉晚呤时2 小时前
深入了解递归、堆与栈:C#中的内存管理与函数调用
java·jvm·算法