摘要:
简单的排序然后遍历就不说了。这道题同样能够用异或的方法进行处理。一个数与自己异或的结果是0,所以设置一个变量,将数组遍历一遍,将对应的数组元素与该变量异或,同时将对应的指示符与该变量异或,到最后,所有出现过的数都与对应的下标异或后结果为0,剩下的就是缺失的数字。贴代码 class Solution 阅读全文
posted @ 2021-03-27 16:18
zhaohhhh
阅读(35)
评论(0)
推荐(0)
摘要:
一个字,栈,遇到左边的入栈,遇到右边的首先判断是否为空栈,如果为空,返回false,然后判断是否为对应的右括号,如果是,继续,如果不是,古德拜。贴代码 class Solution { public: bool isValid(string s) { stack<char> good; for(in 阅读全文
posted @ 2021-03-27 15:40
zhaohhhh
阅读(43)
评论(0)
推荐(0)
摘要:
土方法,找规律,效率一般,但还是要记录一下,贴代码 class Solution { public: vector<vector<int>> generate(int numRows) { vector<vector<int>> good; vector<int> temp; temp.push_b 阅读全文
posted @ 2021-03-27 15:23
zhaohhhh
阅读(32)
评论(0)
推荐(0)
摘要:
题意就是将一个二进制数颠倒之后输出。思路不难,值得学习的是几个位运算符,比如&,|,n&1可用于提取n最低位的值,在n的低位为1时,n|x可用于将x赋给n的最低位。贴代码 class Solution { public: uint32_t reverseBits(uint32_t n) { uint 阅读全文
posted @ 2021-03-27 14:33
zhaohhhh
阅读(44)
评论(0)
推荐(0)
摘要:
求的是一个32位的二进制数中1的个数,简单的方法是不断的将一个1向左移位,然后与当前的n进行与运算,只有这一位是1时,运算结果才会不是0,于是加一。 当然还有更好的办法,就是n & n-1这个做法,这个运算会把n的最低一位的1翻转为0,也就是说,如果不断重复这个运算,最终n就会变成0,运算的次数自然 阅读全文
posted @ 2021-03-27 11:46
zhaohhhh
阅读(64)
评论(0)
推荐(0)
摘要:
看上去有点复杂,但本质在于当前的数字若是小于之后一位的数字,则这一位的数字应当减去,如果不是,则正常相加。搞清楚这一问题后就比较简单了。贴代码 class Solution { public: int romanToInt(string s) { int sum = 0; for(int i = 0 阅读全文
posted @ 2021-03-27 11:27
zhaohhhh
阅读(49)
评论(0)
推荐(0)

浙公网安备 33010602011771号