高端婚恋网站排名,专做恐怖片的网站,营商环境网站建设,中山seo关键词文章目录 位1的个数题意#xff1a;解#xff1a;代码#xff1a; 汉明距离题意#xff1a;解#xff1a;代码#xff1a; 颠倒二进制位题意#xff1a;解#xff1a;代码#xff1a; 杨辉三角题意#xff1a;解#xff1a;代码#xff1a; 有效的括号题意#xf… 文章目录 位1的个数题意解代码 汉明距离题意解代码 颠倒二进制位题意解代码 杨辉三角题意解代码 有效的括号题意解代码 缺失数字题意解代码 位1的个数
题意
32位二进制判断1的数量
解
bitset
代码
#includeiostream
#includebitset
using namespace std;
int hammingWeight(uint32_t n)
{bitset32bs(n);return bs.count();
}
int main()
{uint32_t n;cinn;int anshammingWeight(n);coutansendl;return 0;
}汉明距离
题意
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
解
异或 bitset
代码
#includeiostream
#includebitset
using namespace std;
int hammingDistance(int x, int y)
{bitset32bs(x^y);return bs.count();
}
int main()
{int x,y;cinxy;int anshammingDistance(x,y);coutansendl;return 0;
}颠倒二进制位
题意
如题
解
双指针翻转bitset
代码
#includeiostream
#includebitset
#includealgorithm
using namespace std;
uint32_t reverseBits(uint32_t n)
{bitset32bs(n);int l0,r31;while(lr){bool tempbs[l];bs[l]bs[r];bs[r]temp;l;r--;}uint32_t retbs.to_ulong();return ret;
}
int main()
{uint32_t n;cinn; int ansreverseBits(n);coutansendl;return 0;
}杨辉三角
题意
如题
解
数学推导
代码
#includeiostream
#includebitset
#includealgorithm
using namespace std;
vectorvectorint generate(int numRows)
{vectorvectorintret;for(int i1;inumRows;i){//couti:iendl;vectorinttemp;for(int j0;ji;j){//coutj:jendl;if(j0||ji-1) temp.push_back(1);else temp.push_back(ret[i-2][j-1]ret[i-2][j]);}ret.push_back(temp);}return ret;
}
int main()
{int n;cinn; vectorvectorintansgenerate(n);for(auto row:ans){for(auto col:row) coutcolends;coutendl;}return 0;
}有效的括号
题意
给定一个只包括 (){}[] 的字符串 s 判断字符串是否有效。
解
经典栈处理
代码
#includebits/stdc.h
using namespace std;
bool isValid(string s)
{vectorcharstackVec(s.size());int cnt0;mapchar,charmp{ {{, },{},{},{[, },{],[},{(, },{),(}};for(const auto ch:s){//coutch:chcnt:cntendl;if(cnt0) stackVec[cnt]ch;else{if(mp[ch]stackVec[cnt-1]){cnt--;}else stackVec[cnt]ch;}//coutch:chcnt:cntendl;}return (cnt0?true:false);
}
int main()
{string s;cins;bool ansisValid(s);coutboolalphaansendl;return 0;
}缺失数字
题意
给定一个包含 [0, n] 中 n 个数的数组 nums 找出 [0, n] 这个范围内没有出现在数组中的那个数。
解
经典异或
主要原理0^xx 和 x^x0所以出现两遍的数字不会影响结果
代码
#includebits/stdc.h
using namespace std;
int missingNumber(vectorint nums)
{int nnums.size(),ret0;for(auto num:nums) ret^num;for(int i0;in;i) ret^i;return ret;
}
int main()
{vectorintnums;int temp;while(cintemp) nums.push_back(temp);int ansmissingNumber(nums);coutansendl;
}