给定一个32位整数 num,你可以将一个数位从0变为1。请编写一个程序,找出你能够获得的最长的一串1的长度。
示例 1:
输入: num = 1775(11011101111)
输出: 8
示例 2:
输入: num = 7(0111)
输出: 4
分析:
方法:模拟
求将一个数位 0 变为 1 时获取的最长一串 1 的长度,相当于求一个 0 前后连续 1 的最大数量,那么我们可以定义三个变量,一个记录最大值,一个记录前方 1 的数量(变 1 的 0 默认在前方),一个记录后方 1 的数量,拿 1775(11011101111) 举例:
- 11011101111 后方 1 的数量为 4,前方为 0,长度为 4,最大长度为 4
- 11011101111 后方 1 的数量为 3,前方为 5,长度为 8,最大长度为 8
- 110