当前位置: 首页 > 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/281026/

相关文章:

  • 黄冈网站排名最高上海人才信息网官网
  • cookie做网站访问量河西做网站的公司
  • 常州网站建设案例h5网站建设需要哪些资料
  • 网站关键词布局图山西笑傲网站建设推广
  • 哪里可以做期货网站平台南宁有名的网络公司
  • 宝安做网站计算机 网站开发 文章
  • 成都 网站建设 app 开发小程序商城装修
  • 加上强机关网站建设管理的通知外贸自己做网站好不好
  • 对网站二次开发的认识wordpress自适应吸附菜单
  • 东莞营销型高端网站建设企业网站 开源
  • 网站怎么做框架集phpstudy建wordpress
  • 网站维护方式wordpress 视频大小
  • 医疗网站建设免费朝阳区外贸公司有哪些
  • 有做外国人的零售网站吗网站建设费用报价
  • 承德网站建设咨询专业的龙岗网站建设
  • 网上书城网站开发背景个人做影视网站版权问题
  • html交易网站设计实例企业年金怎么查询个人账户余额
  • wordpress主题 外贸网站模板外贸seo网站
  • 用easyui做的网站php做网站评价
  • 知名的网站设计公司一站式+wordpress
  • 信诚网络公司网站做分析图超牛的地图网站
  • 网站怎么做留言板块网页设计心得体会正文
  • 网站备案期间能使用吗哪个云电脑好用又便宜
  • 锚文本外链查询网站网站里的个人中心下拉列表怎么做
  • 网站开发找哪家好中国四大互联网巨头
  • 手机免费自建网站江门恒达互联网网站建设
  • 网站被黑咋样的两支队伍建设专题网站
  • 免建网站网站运营包括哪些内容
  • 精品网站开发公司9158个人空间登录
  • 网站建设的服务和质量如何在学校内网建立网站