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

优选算法第五讲:位运算模块

优选算法第五讲:位运算模块

  • 1.常见的位运算总结
  • 2.判断字符是否唯一
  • 3.丢失的数字
  • 4.两整数之和
  • 5.只出现一次的数字II
  • 6.消失的两个数字

1.常见的位运算总结

在这里插入图片描述

2.判断字符是否唯一

链接: link
在这里插入图片描述

class Solution {
public:bool isUnique(string astr) {if(astr.size() > 26) return false;int hash = 0;for(auto e : astr){ //找出下标int i = e-'a';if(hash&(1<<i)) return false;//如果对应位置为1,证明前面已经存在了该字符,返回falseelse hash |= 1<<i;//将字符存储到int变量中}return true;}
};  

3.丢失的数字

链接: link
在这里插入图片描述

class Solution {
public:int missingNumber(vector<int>& nums) {int sum = 0;for(auto e : nums) sum ^= e;for(int i = 0; i<=nums.size(); i++) sum ^= i;return sum;}
};

4.两整数之和

链接: link
在这里插入图片描述

class Solution {
public:int getSum(int a, int b) {while(b){int x = a^b;unsigned int carry = (unsigned int)(a&b)<<1;a = x;b = carry;}return a;}
};

5.只出现一次的数字II

链接: link
在这里插入图片描述

class Solution {
public:int singleNumber(vector<int>& nums) {int ret = 0;for(int i = 0; i<32; i++){int sum = 0;for(auto e : nums)if((e>>i)&1 == 1) sum++;// if((e & (1 << i)) == 1)//  sum++;sum %= 3;if(sum == 1)ret |= 1<<i;}return ret;}
};

6.消失的两个数字

链接: link
在这里插入图片描述

class Solution {
public:vector<int> missingTwo(vector<int>& nums) {//先将nums中的所有数据进行异或int sum = 0;for(auto e : nums) sum ^= e;//然后再将1-N之内的数据进行异或for(int i = 1; i<=nums.size()+2; i++) sum ^= i;//找出最右边的1int rightone = sum&(-sum);int num1 = 0;for(auto e : nums)if(e & rightone)num1 ^= e;for(int i = 1; i<=nums.size()+2; i++)if(i & rightone)num1 ^= i;int num2 = sum^num1;return {num1, num2};}
};  

http://www.mrgr.cn/news/67049.html

相关文章:

  • 零基础快速入门MATLAB
  • 视频编辑学习笔记
  • Scala 的访问权限
  • PyTorch 2.0: 开启深度学习框架新纪元
  • JAVA基础之NIO
  • 房屋租赁管理系统的费用是多少?
  • 本地跟单软件,精准跟随、实时同步 轻松实现自动跟单 MT4免费EA
  • 【网络安全 | 漏洞挖掘】超出范围的域名存在XSS?我是这样提高危害的
  • 高清烟花视频素材下载网站推荐
  • js 将文件 url 地址转成 Blob 文件流并下载
  • 2025 年使用 Python 和 Go 解决 Cloudflare 问题
  • Vue 3 day1106
  • string模拟实现find
  • 六个核桃斥资千万研究脑健康,核桃健脑作用科学具象化了
  • SpringBoot配置Rabbit中的MessageConverter对象
  • 01简介——基于全志V3S的Linux开发板教程笔记
  • 信息安全工程师(78)网络安全应急响应技术与常见工具
  • 对比JavaScript、C、Python在声明变量后未初始化处理上的差异与深度解析
  • springboot-Ioc-Di
  • 内网渗透-信息收集篇
  • 输入/输出系统
  • 呼叫中心如何安排用户回访?
  • 编译工具与文件学习(一)-YAML、repos、vcstoolcolcon
  • NoSQL基础知识总结
  • xftp连接中不成功 + sudo vim 修改sshd_config不成功的解决方法
  • Linux 高级IO