#yyds干货盘点# LeetCode程序员面试金典:翻转数位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# LeetCode程序员面试金典:翻转数位相关的知识,希望对你有一定的参考价值。

题目:

给定一个32位整数 num,你可以将一个数位从0变为1。请编写一个程序,找出你能够获得的最长的一串1的长度。

示例 1:

输入: num = 1775(110111011112)

输出: 8

示例 2:

输入: num = 7(01112)

输出: 4

代码实现:

class Solution 
public int reverseBits(int num)
int ps = 0, cur = 0, res = 0;
for (int i = 0; i++ < 32; num >>= 1)
if ((num & 1) == 1) ++cur;
else
ps = cur;
cur = 0;

res = Math.max(ps + cur + 1, res);

return res == 33 ? 32 : res;



以上是关于#yyds干货盘点# LeetCode程序员面试金典:翻转数位的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# LeetCode程序员面试金典:连续数列

#yyds干货盘点# LeetCode程序员面试金典:翻转数位

#yyds干货盘点# LeetCode程序员面试金典:回文排列

#yyds干货盘点# LeetCode程序员面试金典:整数转换

#yyds干货盘点# LeetCode程序员面试金典:配对交换

#yyds干货盘点# LeetCode程序员面试金典:最小差