LeetCode 题解之Number Complement】的更多相关文章

1.题目描述 2.题目分析 使用 C++的 bitset 库进行操作: 3.代码 int findComplement(int num) { bitset<> b(num); string s = b.to_string(); string::iterator it = s.begin() ; while( it != s.end() ){ ' ) break; ++it; } if( it == s.end() ){ s = "; }else{ s.assign(it,s.end(…
problem 476. Number Complement solution1: class Solution { public: int findComplement(int num) { //正数的补数是对应二进制各位翻转,且从非零高位开始. bool start = false; ; i>=; i--)//err. { <<i)) start = true; <<i); } return num; } }; 参考 1. Leetcode_476. Number Com…
原题链接 https://leetcode.com/problems/number-complement/ 原题 Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation. Note: The given integer is guaranteed to fit within the range o…
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation. Note: The given integer is guaranteed to fit within the range of a 32-bit signed integer. You could assume no leading ze…
这是悦乐书的第240次更新,第253篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第107题(顺位题号是476).给定正整数,输出其补码数.补充策略是翻转其二进制表示的位.例如: 输入:5 输出:2 说明:5的二进制表示为101(无前导零位),其补码为010,因此需要输出2. 输入:1 输出:0 说明:1的二进制表示形式为1(无前导零位),其补码为0,因此需要输出0. 注意: 保证给定的整数适合32位有符号整数的范围. 您可以假设整数的二进制表示中没有前导零位. 本…
题目: Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded…
题目: 判断一个数字是不是回文数字,即最高位与最低位相同,次高位与次低位相同,... 解法: 求出数字的位数,然后依次求商和求余判断是否相等. 代码: class Solution { public: bool isPalindrome(int x) { ) //负数有符号,肯定不是回文数 return false; ; ) //d与x位数相同 d *= ; while(x) { ) //比较最高位和最低位是否相等 return false; x = x % d / ; //去掉最高位和最低位…
1.题目描述 2.题目分析 找到字符串中的空格即可 3.代码 int countSegments(string s) { ){ ; } vector<string> v; ; i < s.size(); i++){ if( isspace(s[i]) ){ continue; } ; while( !isspace(s[j]) ){ if( j < s.size() ) j++; else break; } string sb = s.substr(i,j-i); v.push_b…
1.题目描述 2.问题分析 使用C++ 标准库的 bitset 类,将整数转换为 二进制,然后将二进制表示转换为字符串,统计字符串中 1 的个数即可. 3.代码 int hammingWeight(uint32_t n) { bitset<> b(n); string b_s = b.to_string() ; ; for(string::iterator it = b_s.begin(); it != b_s.end() ; ++it ) { ') ++count_one; } return…
1.题目描述 2.分析 使用一个map将字母和数字对应起来,方便后续使用. 3.代码 vector<int> numberOfLines(vector<int>& widths, string S) { map<char,int> m; vector<int> ans; ; i< ;i++) m[i+'a'] = widths[i]; ; ; ; ; t < S.size(); t++) { curLen += m[ S[t] ]; la…