Leetcode_485. 最大连续 1 的个数
给定一个二进制数组 $nums$ , 计算其中最大连续 $1$ 的个数。
示例 1:
1 | 输入:nums = [1,1,0,1,1,1] |
示例 2:
1 | 输入:nums = [1,0,1,1,0,1] |
提示:
- $1 <= nums.length <= 10^{5}$
- $nums[i]$ 不是 $0$ 就是 $1$.
1 | class Solution { |
这里我遇到了一个问题,就是内循环的条件i<nums.length&&nums[i++]==1
当我交换位置时,就会报数组越界的错误,我知道原因是因为i++
的自增导致后面i<num.length
的判断失误,但是当我改成nums[i++]==1&&i-1<nums.length
还是会错。。。
直接写一个debug程序追踪一下这些变量打断点逐步观察这些变量,发现nums[i++]
会越界。
结论就是条件表达式是自左而右依次进行的,第一个条件表达式的相关变量会影响后续表达式的值,对于&&
,第一个表达式为false
则后续条件表达式不会执行,这也正是题解所写那样写不会越界的原因。
评论