当前位置: 首页 > news >正文

只出现一次的数字|||(考察点为位操作符)

目录

一题目:

二·思路汇总:

三·代码解答:


一题目:

leetcode原题链接:. - 力扣(LeetCode) 

二·思路汇总:

思路:如果直接对数组按位异或,那么最后得到的是a^b,因此要把它们分到不同的数组,再按位异或。可想而知a与b不同的话

那么要么至少有一位不同,则按位异或后至少有一个一,因此可以用lowbit得到它的从末端数第一个一的位,其余都是0

如:000010000,,可以知道a与b只有一个数与它按位与后为整数,否则为0.因此可以区分不同数组按位异或。

这里操作的都是补码,如ret最后存在1的位(即a与b不同的比特位被它包含)

可以是11或者10,01,那么对应的负ret操作时候是补码就是:01,10,11,此时如果&得到的bite位一定是lowbit,其余都是0

因此这个-ret可以保证对应的ret除了最后一位是1则-ret此处也是1,其他相反

三·代码解答:

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {unsigned int ret=0;int a=0,b=0;for(auto i:nums)ret^=i;int x=ret&(~ret+1);//得到lowbit两种写法//int x=ret&(-ret);for(int j=0;j<nums.size();j++){if(nums[j]&x)a^=nums[j];else b^=nums[j];}return {a,b};}
};

http://www.lryc.cn/news/451611.html

相关文章:

  • PMP--三模--解题--81-90
  • 脚本自动化创建AWS EC2实例+安装ElasticSearch和Kibana+集成OpenTelemetry监控
  • 【设计模式-命令】
  • 【API安全】crAPI靶场全解
  • HCIP-HarmonyOS Application Developer 习题(四)
  • 【Python报错已解决】TypeError: ‘int‘ object is not subscriptable
  • 《OpenCV》—— 指纹验证
  • HBase 性能优化的高频面试题及答案
  • excel不经过后台实现解析和预览(vue)
  • html5 + css3(上)
  • Flask+微信小程序实现Login+Profile
  • 后缀表达式中缀表达式转后缀表达式
  • Qemu开发ARM篇-7、uboot以及系统网络连接及配置
  • 两数相加leetcode
  • C0004.Qt中QComboBox设置下拉列表样式后,下拉列表样式无效的解决办法
  • AI 对话工具汇总
  • 面试题05.08绘制直线问题详解(考察点为位运算符)
  • 埃及 Explained
  • 【Linux】第一个小程序——进度条实现
  • 如何确定光纤用几芯 用光纤与网线区别在哪里
  • 使用Chrome浏览器时打开网页如何禁用缓存
  • zabbix7.0创建自定义模板的案例详解(以监控httpd服务为例)
  • 从零开始Ubuntu24.04上Docker构建自动化部署(五)Docker安装jenkins
  • 【JS】访问器成员
  • 五子棋双人对战项目(3)——匹配模块
  • 开源软件简介
  • Bruno:拥有 11.2k star 的免费开源 API 测试工具
  • C动态内存管理
  • 系列二、案例实操
  • Python编码系列—Python状态模式:轻松管理对象状态的变化