class Solution {
public:
int reverseBits(int num) {
}
};
面试题 05.03. 翻转数位
给定一个32位整数 num
,你可以将一个数位从0变为1。请编写一个程序,找出你能够获得的最长的一串1的长度。
示例 1:
输入: num
= 1775(110111011112)
输出: 8
示例 2:
输入: num
= 7(01112)
输出: 4
原站题解
golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2021-06-21 16:32:30
func reverseBits(num int) int { ans, cur, lastZero := 0, 0, -1 for i := 0; i < 32; i++ { bit := num & (1 << (31-i)) if bit != 0 { cur++ } else { cur = i - lastZero lastZero = i } ans = max(ans, cur) } return ans } func max(x, y int) int { if x > y { return x } return y }