深圳龙岗建网站,网站开发模块化开发,互助盘网站开发,企业建设网站没有服务器文章目录 一、题目二、Java 题解 一、题目 给定一个32位整数 num#xff0c;你可以将一个数位从0变为1。请编写一个程序#xff0c;找出你能够获得的最长的一串1的长度。
示例 1#xff1a; 输入: num 1775(110111011112) 输出: 8 示例 2#xff1a; 输入: num 7(01112)… 文章目录 一、题目二、Java 题解 一、题目 给定一个32位整数 num你可以将一个数位从0变为1。请编写一个程序找出你能够获得的最长的一串1的长度。
示例 1 输入: num 1775(110111011112) 输出: 8 示例 2 输入: num 7(01112) 输出: 4 点击此处跳转题目。
二、Java 题解 p 表示当前最多连续 1 的个数last 表示上次最多连续 1 的个数。遍历每一位如果为 1则 p 递增否则重置 last 为 p并将 p 设为 0表示重新开始计 1。
class Solution {public int reverseBits(int num) {int p 0, last 0, ans 1;for (int i 0; i 32; i) {if ((num (1 i)) ! 0) p;else {last p;p 0;}if (p last 1 ans) ans p last 1;}return ans 32 ? 32 : ans;}
}时间0 ms击败 100.00% 使用 Java 的用户内存36.98 MB击败 90.63% 使用 Java 的用户 这里新学到了一种遍历每一位的方式
for (int i 0; i 32; i) int p num (1 i);