首页 > 其他分享 >260. 只出现一次的数字 III

260. 只出现一次的数字 III

时间:2022-08-30 22:48:26浏览次数:69  
标签:数字 nums int 示例 aaor 260 num III cur

 

难度中等

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

 

进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?

 

示例 1:

输入:nums = [1,2,1,3,2,5]
输出:[3,5]
解释:[5, 3] 也是有效的答案。

示例 2:

输入:nums = [-1,0]
输出:[-1,0]

示例 3:

输入:nums = [0,1]
输出:[1,0]


1、 如何求末尾最后1个1

cur= 01011100
-cur= ^cur+1=10100100
cur & -cur =00000100

2、根据末尾最后一个1将数组分组



class Solution {
public:
    vector<int> singleNumber(vector<int>& nums) {
        vector<int>res(2,0);
        int aaor = 0;
        for(int num : nums) {
            aaor ^= num;
        }
        int last_bit = (aaor == INT_MIN ? aaor : aaor & (-aaor));//如何求末尾最后1个1

        for(auto num:nums) {
            // 注意位运算与 != 的优先级
            if((num & last_bit)!=0) {
                res[0] ^= num;
            } else {
                res[1] ^= num;
            }
        }
        return res;
    }
};

 

 

标签:数字,nums,int,示例,aaor,260,num,III,cur
From: https://www.cnblogs.com/zle1992/p/16641145.html

相关文章

  • 基础数据类型之数字和字符串
    1.数字类型数字类型的数据可以相互的进行+-/*、也可以进行相互的比较(<>=)1.1整型intage=18记录年龄等整数print(type(age))#int类型int()方法可以将其他类型的数据转换......
  • 位运算与计数器,数组中其他数字都出现x次,只有一个数字出现一次
    一个数组,一个数字出现一次,其他数字出现x次,求只出现一次的数字。做法很多,但对空间与时间度有要求的话,位运算是最方便的做法如果x是2的话,仅仅异或运算就可以了,但如果更多次......
  • 数字信号处理--第二章/离散时间信号和离散时间系统
    离散时间信号--数字序列离散时间信号的表示概述对于x(n):n为整数时有对应数值,n非整数时,x(n)没有定义,不可认定为0单位取样序列δ(n):n=0时值为1;单位冲激函数δ(t):n=0时值为∞......
  • 百货商场数字化|百联靠全渠道实现疫情期间业务增长
    作为国内百货商场的龙头企业,百联集团很早就敏锐察觉到数字化技术将对百货商场业态产生巨大的影响。早在2014年,百联就开始实施数字化转型的战略,并开始布局全渠道触点,8年间......
  • 数字游戏
    P1043[NOIP2003普及组]数字游戏-洛谷|计算机科学教育新生态(luogu.com.cn)化环为链开两倍空间,求答案时遍历一遍bigsmall[left][right]代表从乐left到right的......
  • 大咖说·图书分享|阿里云数字新基建系列:混合云架构
    混合云架构是什么?发展历程是怎样的?它有哪些应用场景?本期大咖说,看阿里云混合云技术服务高级技术专家、《混合云架构》图书联合作者解国红如何分享。  嘉宾介绍解......
  • 华为云GaussDB深耕数据库根技术,助力能源行业数字化转型
     近日,以“推进能源数字化共建低碳智能社会”为主题的第十二届能源企业信息化大会在北京举办。华为云数据库首席架构师冯柯在会上分享了华为云GaussDB的创新技术和能源......
  • 数字信号处理--第一章/绪论
    数字信号处理的基本运算提出的信号处理问题,都要用适当的理论模型来表示,而理论模型要归结于一组相互联系的运算即为数字信号处理算法。常用基本运算:1、差分方程的计算2、离......
  • MySQL提取字符串中的数字
    1--方法12selectreplace(reverse(FORMAT(reverse('国械注准20173463309'),0)),',','');34--方法25CREATEFUNCTIONget_number(paramvarchar(50))......
  • 190. 颠倒二进制位 (二进制数字反转)
    难度简单551收藏分享切换为英文接收动态反馈颠倒给定的32位无符号整数的二进制位。提示:请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都......