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

哈尔滨全国网站建设企业馆

哈尔滨全国网站建设,企业馆,网站在哪里搜索,网络广告方案怎么写目录 1. 判断字符是否唯一2. 消失的数字3. 两整数之和4. 只出现一次的数字II5. 消失的两个数字 前情提要:如果对一些常见的二进制位运算不熟悉,请看这篇文章: 常见的位运算 1. 判断字符是否唯一 面试题 01.01. 判定字符是否唯一 - 力扣&…

目录

  • 1. 判断字符是否唯一
  • 2. 消失的数字
  • 3. 两整数之和
  • 4. 只出现一次的数字II
  • 5. 消失的两个数字

前情提要:如果对一些常见的二进制位运算不熟悉,请看这篇文章: 常见的位运算

1. 判断字符是否唯一

面试题 01.01. 判定字符是否唯一 - 力扣(LeetCode)

在这里插入图片描述

思路:利用位图的思想,定义一个整数来模拟哈希表,根据每个比特位对应的值来映射字符

在这里插入图片描述

代码实现:

class Solution {public boolean isUnique(String astr) {        int BitMap = 0;int n = astr.length();if(n > 26){return false;}for(int i=0;i<n;i++) {char ch = astr.charAt(i);if(((BitMap>>(ch-'a')) & 1)==1){return false;} else {BitMap |= (1<<(ch-'a'));}}return true;}
}

2. 消失的数字

268. 丢失的数字 - 力扣(LeetCode)

在这里插入图片描述

思路:

在这里插入图片描述

代码实现:

class Solution {public int missingNumber(int[] nums) {// 异或运算int n = nums.length;int ret = 0;for(int i=0;i<=n;i++){ret^=i;}for (int i = 0; i < n; i++) {ret ^= nums[i];}return ret;// int n = nums.length;// //高斯求和// int sum = ((n)*(n+1))/2;// int numsSum = 0;// for(int i=0;i<nums.length;i++) {// numsSum += nums[i];// }// return sum - numsSum;}
}

3. 两整数之和

371. 两整数之和 - 力扣(LeetCode)

在这里插入图片描述

思路:

1、让这两个数a、b无进位相加(异或)所得结果x

2、a和b按位与所得结果carry

3、a=x,b=carry

4、a和b无进位相加(疑惑)

循环上面步骤直到b为0,此时相加结果是a

class Solution {public int getSum(int a, int b) {while(b!=0){int x = a^b;//先计算无进位相加int carry = (a & b)<<1;a = x;b = carry;}return a;}
}

4. 只出现一次的数字II

137. 只出现一次的数字 II - 力扣(LeetCode)

在这里插入图片描述

思路:

在这里插入图片描述

定义一个变量ret,依次计算nums数组中第i位的和sum,接着让sum%3,根据结果对应的值修改ret对应比特位的值

class Solution {public int singleNumber(int[] nums) {int ret = 0;for(int i=0;i<32;i++){//依次修改ret中的每一位int sum = 0;for(int j=0;j<nums.length;j++){sum+= ((nums[j]>>i)&1);//计算第i位的和}sum%=3;if(sum==1){//修改第i位置的值ret |= (1<<i);}}return ret;}
}

5. 消失的两个数字

面试题 17.19. 消失的两个数字 - 力扣(LeetCode)

在这里插入图片描述

思路:

在这里插入图片描述

class Solution {public int[] missingTwo(int[] nums) {int len = nums.length;int N = len + 2;int ret = 0;for (int i = 0; i < nums.length; i++) {ret ^= nums[i];}for (int i = 1; i <= N; i++) {ret ^= i;}// ret为消失的两个数^的结果int lowBit = ret & (-ret);int[] ans = new int[2];ans[0] = 0;ans[1] = 0;for (int i = 1; i <= N; i++) {if ((i & lowBit) != 0) {ans[0] ^= i;} else {ans[1] ^= i;}}for (int i = 0; i < nums.length; i++) {if ((nums[i] & lowBit) != 0) {ans[0] ^= nums[i];} else {ans[1] ^= nums[i];}}return ans;}
}
http://www.yayakq.cn/news/537864/

相关文章:

  • 网站功能优化的方法关于做无机化学实验的网站
  • 期末作业做网站的心得体会网题 做问卷的网站
  • 网站建设书籍wordpress 防下载
  • 网站开发技术及开发环境石家庄网络公司有哪些
  • 开发网站找什么公司吗优质视频素材网站
  • 淘宝客网站空间唐四薪php网站开发答案
  • 没有网站可以域名备案企业邮箱官方网站
  • 品牌网站设计视频教程网站关键词优化多少钱
  • 工程建设监理网站商丘企业做网站
  • 免费个人网站模板下载文具用品网站设计规划书
  • 企业网站源码asp广告公司取名大全最新版的
  • 河西做网站的公司网站 自适应文字大小怎么做
  • 计算机网络技术网站开发性是怎么做视频网站
  • 网站建设客户需求分析调查表深圳华强北附近租房哪里便宜
  • 企业seo价格查询价格网站优化公司seo案例
  • 网站按钮特效女人和男人做床上爱网站
  • 做公众号首图网站专业开发小程序的公司
  • 佛山南海区建网站的公司装饰行业网站建设
  • 网站空间购买流程wordpress多门店商城
  • 免费制作论坛网站模板免费下载wordpress电视直播插件下载
  • 新浪云sae免费wordpress网站医院网站建设安全协议
  • 网站建设哪个最好wordpress4.8 php7
  • 如何把网站推广出爱客crm网页版登录
  • 网站开发外包公司合同范本外贸网站源码去一品资源
  • 做网站的成功案例layui做的网站
  • 建设人才信息网是什么网站桂林漓江旅游
  • 济南网站建设设计公司成品网站设计网站
  • 网站上线流程图绵阳网站建设价格
  • 制作手机wap网站工具江苏省建设监理协会网站
  • 西安专业的网站优化做网站能挣钱不