首页 > 编程语言 >利用异或解决“只出现一次的数字“问题的C++解决方案

利用异或解决“只出现一次的数字“问题的C++解决方案

时间:2024-08-07 15:27:35浏览次数:14  
标签:数字 val nums int 解决方案 C++ 异或 出现

该问题的输入是一个整数数组 nums,其中除了一个数字之外,其余数字都出现了两次。任务是找到那个只出现一次的数字,并将其返回。

 

class Solution {

public:

    int singleNumber(vector<int>& nums) {

        int val = 0;

        for(size_t i = 0;i<nums.size();i++)

            val^= nums[i];

 

        return val;

    }

};

异或是位运算,计算1^2时,要将1和2转为二进制,即 0001 和 0010 ,按照“相同得0,不同得1” 的法则计算,结果为 0011 ,答案是 3 。

0与任何数字(包括0)异或结果为那个数字;

任何数字与自身异或结果为0;

并且异或满足交换率。

 

所以vector中所有出现两边的数字都被消除得0,0 与 0 异或得0,最后 0 与唯一的数字异或得到唯一的数字本身,那么就找到了只出现一次的数字。

 

如果重复的数字出现次数是奇数次,则此方法不可用

 

标签:数字,val,nums,int,解决方案,C++,异或,出现
From: https://www.cnblogs.com/zilin-wang/p/18347125

相关文章

  • 一图看懂 | 蓝卓电机行业解决方案
    电机广泛应用于工业领域,随着经济的发展和工业化进程的推进以及国家对绿色转型和智能制造的重视,特别是新能源汽车、家电、工业自动化和轨道交通等领域,对高效能电机需求显著上升,电机行业也迎来了进一步的发展和突破。从制造工艺的角度看,电机的制造过程是典型的离散制造,包括材......
  • 【C/C++】 现有n个正整款,n<10000,要求出这n个正整数中的第k个最小整数(相同大小的整数
    现有n个正整款,n<10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次)k≤1000,正整数均小于30000.第一行输入n和k,第二行输入有n个正整数的数组(有重复的数字)#include<iostream>#include<algorithm>usingnamespacestd;intmain(){intn=0,k=0;......
  • vscode C++ 自动补全失效
    设置搜索这几个,并设置为对应值。 如果没解决,可能是clangd的问题。禁用clangd,然后去看看c_cpp_properties.json。看complierPath是不是clang。如果是,改成g++/gcc。再看一下intelliSenseMode是不是clang。如果是,改为default。 linux下c_cpp_properties.json的配置 ......
  • 【数据结构与算法】删除循环队列中第k个元素的算法 C++实现(循环队列+模运算)
    数组a[MaxSize]用作一个循环队列,front指向循环队列中队头元素的前一个位置,rear指向队尾元素的位置。设计删除队列中第k个元素的算法。思路首先,判断kkk是否在有效范围内......
  • 【数据结构与算法】在循环队列中第k个元素之后插入元素的算法 C++实现(循环队列+模运算
    数组a[MaxSize]用作一个循环队列,front指向循环队列中队头元素的前一个位置,rear指向队尾元素的位置。设计在队列中第k个元素之后插入item的算法。思路首先,检查输入的位置k是否在合理的范围内,即1到queueSize(Q)(包含两端)。如果k在这个范围外,那么返回ERROR。然后,计......
  • 【NOI】C++算法设计入门之穷举
    文章目录前言一、概念1.导入2.概念二、例题讲解1.简单穷举问题:1015.鸡兔同笼问题问题:1351.买公园门票问题:1016.买小猫小狗问题:1220.买糕点问题:1396.开学大采购?2.嵌套穷举问题:1022.百钱百鸡问题问题:1024.购买文具问题:1249.搬砖问题问题:1250.马克思手稿的问题......
  • 简易秀投票解决方案功能展示与案例分析
    简易秀投票小程序作为一款功能丰富、操作简便的投票工具,其功能案例分析可以从以下几个方面进行:一、功能概述简易秀投票小程序支持多种投票类型和丰富的设置选项,主要包括:1.多样化的投票类型:支持视频投票、音频投票、图文投票、文字投票等多种类型,满足不同场景下的投票需求。2.......
  • 学懂C++(七): C++错误处理机制 -- 异常
    目录前言一、C语言传统的处理错误的方式二、C++异常的概念三、异常的使用3.1异常的抛出和匹配原则3.2在函数调用链中异常栈展开匹配原则3.3异常的重新抛出3.4异常规范四、自定义异常体系五、异常的优缺点优点缺点结论前言        C++提供了一......
  • 在线外卖点餐系统设计与实现,毕业设计解决方案(2)
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • 【C++从小白到大牛】多态那些事儿(上)
    目录一、多态的概念1.1概念:二、多态的定义及实现 2.1多态的构成条件在继承中要多态还要两个条件 2.2虚函数2.3虚函数的重写2.4虚函数重写的两个例外:1.协变(基类与派生类虚函数返回值类型不同)(了解不重要)2.析构函数的重写(基类与派生类析构函数的名字不同)2......