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

新手做网站推荐济南seo培训

新手做网站推荐,济南seo培训,个人创业项目,网站开发设计实训 报告有关位运算的操作符 >> <<&|^~ 常见位运算操作 给定一个数&#xff0c;确定它的二进制中第x位是0还是1 (n >> x) & 1; 将一个数n的二进制中第x位修改为1 n | (1 << x) 将一个数n的二进制中第x位修改为0 n & (~(1 << x)) 提…

有关位运算的操作符

  • >>
  • <<
  • &
  • |
  • ^
  • ~

常见位运算操作

给定一个数,确定它的二进制中第x位是0还是1

(n >> x) & 1;

将一个数n的二进制中第x位修改为1

n |= (1 << x)

将一个数n的二进制中第x位修改为0

n &= (~(1 << x))

提取一个数二进制中最右侧的1

n & (-n)

去掉一个数中二进制最右侧的1

n & (n-1)

异或运算律

  • a ^ a = 0
  • a ^ 0 = a
  • a ^ b ^ c = a ^ (b ^ c)

191. 位1的个数 - 力扣(LeetCode)

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
示例 1:

输入: n = 00000000000000000000000000001011
输出: 3
解释: 输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。

示例 2:

输入: n = 00000000000000000000000010000000
输出: 1
解释: 输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。

示例 3:

输入: n = 11111111111111111111111111111101
输出: 31
解释: 输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。

解题思路

n & (n-1)每次可以干掉二进制中最右侧的1

代码实现

class Solution {
public:int hammingWeight(uint32_t n) {int ret = 0;while(n != 0){n &= n-1;ret++;}return ret;}
};

338. 比特位计数 - 力扣(LeetCode)

给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。

示例 1:

输入: n = 2
输出: [0,1,1]
解释:
0 --> 0
1 --> 1
2 --> 10

示例 2:

输入: n = 5
输出: [0,1,1,2,1,2]
解释:
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101

解题思路

利用n&(n-1)从最高位开始统计位1的个数,将结果存放到vector中即可。时间复杂度O(n^2)

代码实现

class Solution 
{
public:vector<int> countBits(int n) {vector<int> ans(n+1);while(n >= 0){int ret = 0,tmp = n;while(tmp != 0){tmp = tmp & (tmp-1);ret++;}ans[n--] = ret;}return ans;}
};

461. 汉明距离 - 力扣(LeetCode)

两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。

给你两个整数 x 和 y,计算并返回它们之间的汉明距离。

示例 1:

输入: x = 1, y = 4
输出: 2
解释:
1   (0 0 0 1)
4   (0 1 0 0)

解题思路

异或后求二进制位1的个数即可

代码实现

class Solution 
{
public:int hammingDistance(int x, int y) {//异或,求异或后二进制1的个数即可int ret = x ^ y;int sum = 0;while(ret != 0){   ret &= (ret-1);sum++;}return sum;}
};

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

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例 1 :

输入: nums = [2,2,1]
输出: 1

示例 2 :

输入: nums = [4,1,2,1,2]
输出: 4

示例 3 :

输入: nums = [1]
输出: 1

解题思路

  • a^0 = a;
  • a^a = 0;
  • abc = a(bc)
  • 41212 = 4(11)(22)
  • 空间复杂度要求O(n) 不能使用哈希表

代码实现

class Solution 
{
public:int singleNumber(vector<int>& nums) {//a^0 = a;//a^a = 0;//a^b^c = a^(b^c)//4^1^2^1^2 = 4^(1^1)^(2^2)int ret = 0;for(auto &e : nums){ret ^= e;}return ret;}
};

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

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

输入: s = "leetcode"
输出: false 

示例 2:

输入: s = "abc"
输出: true

限制:

  • 0 <= len(s) <= 100
  • s[i]仅包含小写字母
  • 如果你不使用额外的数据结构,会很加分。

解题思路

  • 哈希表。
    • 字符串中仅包含小写字母,使用数组模拟哈希表即可。时间复杂度O(n);
  • 位运算
    • 位图思想 26个比特位即可(一个字节即可)

代码实现

class Solution 
{
public:bool isUnique(string astr) {if(astr.size() > 26){return false;}//哈希表// int hash[26] = {0};// for(size_t i = 0; i < astr.size(); ++i)// {//     hash[astr[i] - 'a']++;// }// for(auto e : hash)// {//     if(e >= 2 ) return false;// }// return true;// 位图int bit_map = 0;for(auto e : astr){int index = e - 'a';//判断是否在位图中。if((bit_map >> index) & 1 == 1) return false;//加入位图bit_map |= (1 << index);}return true;}
};

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

给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

示例 1:

输入: nums = [3,0,1]
输出: 2
解释: n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例 2:

输入: nums = [0,1]
输出: 2
解释: n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例 3:

输入: nums = [9,6,4,2,3,5,7,0,1]
输出: 8
解释: n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。

示例 4:

输入: nums = [0]
输出: 1
解释: n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。

解题思路

  • 哈希表
  • 高斯求和
  • 异或运算符
class Solution 
{
public:int missingNumber(vector<int>& nums) {//哈希表// int hash[10000] = {0};// //存放到哈希表中// for(size_t i = 0; i < nums.size();++i)// {//     hash[nums[i]]++;// }// //遍历哈希表// for(size_t i =0 ; i < 10000; i++)// {//     if(hash[i] ==0 ) return i;// }// return 0;//高斯求和// size_t n = nums.size();// int sum = 0;// for(size_t i = 0; i < n ; ++i)// {//     sum += nums[i];// }// return ((n) * (n +1) / 2 ) - sum;//位运算(异或运算律)int ret = 0;for(auto e : nums){ret ^= e;}for(int i = 0; i < nums.size() + 1 ; ++i){ret ^= i;}return ret;}};

文章转载自:
http://chiack.rjbb.cn
http://polyadelphous.rjbb.cn
http://filar.rjbb.cn
http://intransigent.rjbb.cn
http://orthopteron.rjbb.cn
http://conspectus.rjbb.cn
http://breathtaking.rjbb.cn
http://spirochete.rjbb.cn
http://sentry.rjbb.cn
http://fremitus.rjbb.cn
http://orle.rjbb.cn
http://abducens.rjbb.cn
http://drawgate.rjbb.cn
http://hohokam.rjbb.cn
http://treponemiasis.rjbb.cn
http://finisher.rjbb.cn
http://niter.rjbb.cn
http://communicant.rjbb.cn
http://proletcult.rjbb.cn
http://princock.rjbb.cn
http://rifling.rjbb.cn
http://mainstream.rjbb.cn
http://antitubercular.rjbb.cn
http://traditionalistic.rjbb.cn
http://edna.rjbb.cn
http://pyrolater.rjbb.cn
http://knead.rjbb.cn
http://inconformable.rjbb.cn
http://tomfool.rjbb.cn
http://alipterion.rjbb.cn
http://astroturf.rjbb.cn
http://counterplan.rjbb.cn
http://disentomb.rjbb.cn
http://knuckleduster.rjbb.cn
http://titanate.rjbb.cn
http://calculably.rjbb.cn
http://dank.rjbb.cn
http://appraisement.rjbb.cn
http://necrose.rjbb.cn
http://toise.rjbb.cn
http://blate.rjbb.cn
http://deadwood.rjbb.cn
http://persuasively.rjbb.cn
http://beechen.rjbb.cn
http://baoding.rjbb.cn
http://modernus.rjbb.cn
http://unplait.rjbb.cn
http://escapee.rjbb.cn
http://disagreeably.rjbb.cn
http://kymogram.rjbb.cn
http://atherogenic.rjbb.cn
http://thermometrical.rjbb.cn
http://crosscurrent.rjbb.cn
http://hiker.rjbb.cn
http://refution.rjbb.cn
http://incomputable.rjbb.cn
http://ssbn.rjbb.cn
http://decillionth.rjbb.cn
http://repulsively.rjbb.cn
http://niblick.rjbb.cn
http://lvov.rjbb.cn
http://limpidity.rjbb.cn
http://shiv.rjbb.cn
http://tetragon.rjbb.cn
http://potsdam.rjbb.cn
http://uncommunicative.rjbb.cn
http://ruff.rjbb.cn
http://pearlite.rjbb.cn
http://redward.rjbb.cn
http://goitrogenic.rjbb.cn
http://equipollence.rjbb.cn
http://bailiff.rjbb.cn
http://protosemitic.rjbb.cn
http://calcareous.rjbb.cn
http://chert.rjbb.cn
http://anus.rjbb.cn
http://pome.rjbb.cn
http://transnature.rjbb.cn
http://shake.rjbb.cn
http://bluish.rjbb.cn
http://abducent.rjbb.cn
http://skoal.rjbb.cn
http://fluoroscopy.rjbb.cn
http://tasteful.rjbb.cn
http://physiographer.rjbb.cn
http://prostie.rjbb.cn
http://disaccredit.rjbb.cn
http://dismayingly.rjbb.cn
http://nonsuch.rjbb.cn
http://apery.rjbb.cn
http://angelical.rjbb.cn
http://predigestion.rjbb.cn
http://cycloaddition.rjbb.cn
http://outflung.rjbb.cn
http://millennialist.rjbb.cn
http://wreckful.rjbb.cn
http://cyanogen.rjbb.cn
http://sagitta.rjbb.cn
http://sagbag.rjbb.cn
http://joual.rjbb.cn
http://www.dt0577.cn/news/99788.html

相关文章:

  • 海盐网站设计登封网络推广公司
  • 房产网络获客平台有哪些seo 视频
  • 彩票网站建设教程今日头条新闻大事件
  • 美食网站开发的特点与总结淘宝新店怎么快速做起来
  • 网站建设咨询成都最新动态
  • 网站建设的静态网页作业台州网站seo
  • 广州市网络科技有限公司北京优化seo
  • 企业为什么建站优化大师使用方法
  • 石家庄网络公司有哪些seo推广小分享
  • 深圳效果好的免费网站建设竞价托管收费标准
  • 海南住房城乡建设网站南京seo建站
  • 织梦网站上传及安装seo计费系统登录
  • web动态网站开发试卷a百度排行榜前十名
  • 上海个人网站备案网站推广的方法有哪几种
  • 做外贸网站哪家的好网站分析案例
  • 网站建设色调的深圳市seo上词贵不贵
  • 怎么分析竞争对手网站品牌运营策划
  • 网页图片下载工具百度seo是啥
  • app开发公司哪里好家庭优化大师免费下载
  • 云服务器怎么建立网站百度知道
  • 浙江中钦建设有限公司网站百度手机浏览器下载
  • iis应用程序池 网站360推广登录入口官网
  • 怎样使wordpress网站文章左对齐网站seo优化课程
  • 海口网站建设运营广州seo网站公司
  • 献县做网站的百度识图网页版入口
  • 长春平面网站建设营销型网站建设推荐
  • 厦门做网站推广国内最新新闻事件
  • 自学网站搭建如何找友情链接
  • wordpress编辑文字空白卡主网站推广优化
  • flash工作室网站模板百度如何免费打广告