企业网站有什么功能,delphi7 网站开发,seo推广顾问,昆明网站托管企业目录 1.判断字符是否唯一2.丢失的数字3.两整数之和4.只出现一次的数字II5.消失的两个数字6.位1的个数7.比特位计数8.汉明距离 1.判断字符是否唯一
判断字符是否唯一
class Solution {
public:bool isUnique(string astr) {//利用鸽巢原理做优化if(astr.size()26) return… 目录 1.判断字符是否唯一2.丢失的数字3.两整数之和4.只出现一次的数字II5.消失的两个数字6.位1的个数7.比特位计数8.汉明距离 1.判断字符是否唯一
判断字符是否唯一
class Solution {
public:bool isUnique(string astr) {//利用鸽巢原理做优化if(astr.size()26) return false;int bitMap 0; //使用位图来存储for(auto ch:astr){int i ch-a;if((bitMapi)1 1) return false;bitMap | (1i);}return true;}
};2.丢失的数字
丢失的数字
class Solution {
public:int missingNumber(vectorint nums) {int ret 0;for(auto x:nums) ret^x;for(int i0;inums.size();i) ret^i;return ret;}
};3.两整数之和
两整数之和
class Solution {
public:int getSum(int a, int b) {while(b!0){int x a^b;unsigned int carry (unsigned int)(ab)1;a x;b carry;}return a;}
};4.只出现一次的数字II
只出现一次的数字II
class Solution {
public:int singleNumber(vectorint nums) {int ret 0;for(int i0;i32;i){int sum 0;for(auto x:nums){if((xi)1 1) sum;}sum %3;if(sum 1){ret | (1i);}}return ret;}
};5.消失的两个数字
消失的两个数字
class Solution {
public:vectorint missingTwo(vectorint nums) {//将所有的数异或在一起int tmp 0;for(auto x:nums) tmp^x;for(int i1;inums.size()2;i) tmp^i;//找到tmp,比特位为1的那一位int diff 0;while(1){if((tmpdiff)1 1) break;diff;}//按照x位的不同划分成两类异或int a 0,b0;for(auto x:nums){if((xdiff)1 1) b^x;else a^x;}for(int i1;inums.size()2;i){if((idiff)1 1) b^i;else a^i;}return {a,b};}
};6.位1的个数
位1的个数
class Solution {
public:int hammingWeight(uint32_t n) {int sum 0;for(int i0;i32;i){if((ni)1 1) sum;}return sum;}
};7.比特位计数
比特位计数
class Solution {
public:vectorint countBits(int n) {vectorint ret;for(int i0;in;i){int sum 0;for(int j0;j32;j){if((ij)1 1) sum;}ret.push_back(sum);}return ret;}
};
8.汉明距离
汉明距离
class Solution {
public:int hammingDistance(int x, int y) {int sum 0;int temp x^y;for(int i0;i32;i){if((tempi)1 1) sum;}return sum;}
};