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

利用angular做的网站网站默认样式表

利用angular做的网站,网站默认样式表,青岛移动网站建设,鹤壁北京网站建设文章目录 判定字符是否唯一题解代码 丢失的数字题解代码 两整数之和题解代码 只出现一次的数字 II题解代码 消失的两个数字题解代码 总结 判定字符是否唯一 题目链接 题解 1. 哈希表,创建26个空间大小的哈希表 2. 位图,小写字符只有26个,…

文章目录

  • 判定字符是否唯一
    • 题解
    • 代码
  • 丢失的数字
    • 题解
    • 代码
  • 两整数之和
    • 题解
    • 代码
  • 只出现一次的数字 II
    • 题解
    • 代码
  • 消失的两个数字
    • 题解
    • 代码
  • 总结

判定字符是否唯一

题目链接
在这里插入图片描述

题解

1. 哈希表,创建26个空间大小的哈希表
2. 位图,小写字符只有26个,位图可以存32个0或1,(bitMap >> i) & 1 判断是否存在元素,bitMap |= (1 << i)把元素加入到位图中

代码

class Solution 
{
public:bool isUnique(string astr) {// 位图// >26个字符说明存在重复的字符了// 优化int n = astr.size();if(n > 26) return false;int bitmap = 0;for(auto ch : astr){int i = ch - 'a';// 判断是否存在重复元素if((bitmap >> i) & 1) return false;// 不存在重复的元素就加入到位图中bitmap |= (1 << i);}return true;}
};

丢失的数字

题目链接
在这里插入图片描述

题解

1. 哈希表,开大小为n+1的空间,把所有的数加入到哈希表中,如果这个数没有出现,就是丢失的数
2. 高斯求和,(首项加尾项)* 项数 /2 - 数组中元素的和3
3. 位运算,用一个变量异或0到n的所有的数,再和数组中的数异或,就可以找到缺失的数

代码

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

两整数之和

题目链接
在这里插入图片描述

题解

1. a ^ b无进位相加,(a & b) << 1进位,直到进位为0,就是答案

在这里插入图片描述

代码

class Solution 
{
public:int getSum(int a, int b) {// 异或(无进位相加) &并且左移一位求进位,进位到下一位上// 直到进位为0,就时最终答案int k = (a & b) << 1;int sum = a ^ b;while(k){a = sum;b = k;// 无进位相加sum = a ^ b;// 进位k = (a & b) << 1;}return sum;}
};

只出现一次的数字 II

题目链接
在这里插入图片描述

题解

1. 每个数都出现了3次,有3n个数,和只存在一个的数的某个比特位相加,再模3就是和只出现一次的数的比特位是一样的
2. 因此只需要算出数组中每个数的二进制的每个位的加和,再模3就是只出现一次的那个数的每个二进制位

在这里插入图片描述

代码

class Solution 
{
public:int singleNumber(vector<int>& nums) {int bit = 0;int n = nums.size();for(int j = 0;j <= 31;j++){int sum = 0;for(int i = 0;i < n;i++){if(((nums[i] >> j) & 1) == 1) sum++; }sum %= 3;if(sum == 1) bit |= (1 << j);}return bit;// map<int,int> ret;// for(auto x : nums) ret[x]++;// for(auto y : nums)// {//     if(ret[y] == 1) return y;// }   // return -1;}
};

消失的两个数字

题目链接
在这里插入图片描述

题解

1. 根据x位的不同,如何划分为两类异或?
如果x位上为1的是一组,x为上是0的是一组
比如:第二组样例
010 010
011 011
001 100

001 ^ 100 = 101
x = 1
第一位上为1的是一组,是0的是一组
010 010 100 -> 100
011 011 001 -> 001
这样就得到了答案

在这里插入图片描述

代码

class Solution 
{
public:vector<int> missingTwo(vector<int>& nums) {// 1.先找出消失两个数异或的结果// 2.再分开消失的两个数// 这两个数异或的结果肯定不会是0,至少有一位是1// 那就根据这位划分为两类异或// 划分为这位是1的和0的int sum = 0;int n = nums.size();for(int i = 1;i <= n+2;i++) sum ^= i;for(int i = 0;i < n;i++) sum ^= nums[i];// 提取这个1int tmp = sum & (-sum);int k = 0;for(int i = 0;i < 32;i++) {if((tmp >> i) & 1){k = i;break;}}int m = 0,t = 0;for(int i = 0;i < n;i++){if((nums[i] >> k) & 1) m ^= nums[i];else t ^= nums[i];}for(int i = 1;i <= n + 2;i++){if((i >> k) & 1) m ^= i;else t ^= i;}return {m,t};// vector<int> ret;// int hash[30010] = {0};// int n = nums.size();// for(int i = 0;i < n;i++)// {//     hash[nums[i]]++;// }// for(int i = 1;i <= n+2;i++) // {//     if(hash[i] == 0) ret.push_back(i);// }// return ret;}
};

总结

1. 给你一个数n,确定这个数的二进制表示上的第x位是0还是1?
(n>>x) & 1,== 0就是0,==1就是1
2. 将一个数n的二进制表示的第x位修改为1?
n = n | (1 << x)
3.将一个数n的二进制表示的第x为修改为0?
n = n & ~(1 << x)
4. 提取一个数n二进制表示中的最右侧的1?
n & (-n) 左侧被n取反后再按位与之后都变成了0,1的右侧都加1都变成了0
5. 干掉一个数n二进制表示中最右侧的1?
n & (n-1) 减一之后会向左边借1,借位的位置变为了0,它的右侧都变成了1,再按位与之后包括它本身都会变成0
6. 异或运算的规律
0 ^ a = a
0 ^ 0 = 0
a ^ a = 0

7. 位图总结
位图可以看成可以存32个二进制位的数组,(bitMap >> i) & 1 判断这一位是否存在,如果存在就加入到位图中,bitMap |= (1 << i)
8. 基础位运算
& | ^ ~ >> <<
9.运算符的优先级
如果判断不了运算符的优先级,就直接加括号


文章转载自:

http://BgDg7ymJ.Ldmtq.cn
http://sE6vQZRW.Ldmtq.cn
http://TU97Zqjy.Ldmtq.cn
http://eWbczzal.Ldmtq.cn
http://TNHrckDC.Ldmtq.cn
http://JUoGhq6d.Ldmtq.cn
http://phJ4BVx3.Ldmtq.cn
http://bwl3yk7m.Ldmtq.cn
http://iBOzpURx.Ldmtq.cn
http://KTRyMrTF.Ldmtq.cn
http://7PIoSXtH.Ldmtq.cn
http://0Y4iBnf0.Ldmtq.cn
http://sxKdHJGw.Ldmtq.cn
http://mmgKxe7U.Ldmtq.cn
http://ijV9oa3r.Ldmtq.cn
http://1dgEXF9O.Ldmtq.cn
http://vrzu4SGM.Ldmtq.cn
http://veRpDUOc.Ldmtq.cn
http://fAGnRvhj.Ldmtq.cn
http://0HEtp74a.Ldmtq.cn
http://VhJeAWU9.Ldmtq.cn
http://XZ8j9upi.Ldmtq.cn
http://yqMqLOtd.Ldmtq.cn
http://H5atT6pk.Ldmtq.cn
http://SN4SdjDI.Ldmtq.cn
http://OWwqTqv2.Ldmtq.cn
http://qkoaRJTi.Ldmtq.cn
http://rfF0nr3m.Ldmtq.cn
http://OaOXDcmF.Ldmtq.cn
http://8n2TUZs8.Ldmtq.cn
http://www.dtcms.com/wzjs/608604.html

相关文章:

  • 景安网站上传完还要怎么做小程序注册个人和企业有什么区别
  • 蓝色风格企业网站网店代运营网站
  • 贸易公司如何做英文网站舟山网站建设公司
  • 乐清网站制作公司有哪些测网站打开的速度的网址
  • 哪个行业该做网站但是没有做做的比较好的货运网站
  • 做app网站有哪些功能海曙网站建设网站
  • 某企业网站建设规划书用腾讯云怎么建设网站
  • phpcms 网站栏目云南建设局网站首页
  • 物流官方网站水利工程建设信息网站
  • 网站建设与管理 ppt模板团购网站建设怎么样
  • 做图片可以卖给那些网站烟台网站优化公司
  • 临沂做进销存网站wordpress百度实时推送
  • 重庆响应式网站建设找哪家网站建设 微信公众号运营
  • iphone手机网站建设做公司网站联系公司
  • 工信部网站手机备案查询陕西公共资源交易中心
  • 作为一个大学生网站 应该怎么做电视剧怎么做短视频网站
  • 阿里云建网站流程有没有免费建网站
  • 用html做班级网站为某一企业规划网络促销方案
  • 怎么查看网站是否被收录安阳logo设计公司
  • 电子商务网站设计流程道客网站建设推广小程序
  • 现在中型公司做网站用的是什么框架佛山专业网站建设价格
  • 电商网站建设模板wordpress 导入工具 0.6.1
  • 定制的网站源码抖音seo关键词优化
  • 网站制作方案策划书家具展示网站源码
  • 深圳做微网站小程序制作费用一览表
  • 企业网站推广网站报备
  • 怎么申请个人网站网站标题写什么作用
  • 义乌营销型网站建设像宝塔面板一样的建站工具
  • 网站开发主要框架 后端张家口万全区建设网站
  • 七星迪曼网站建设保险公司网站查询