Question 4 Longest Consecutive 1
```java
/*
step 1: dp definition
- dp[i] represent Longest Consecutive one length ending at i must including including including
step 2: base case
- dp[0] = nums[0]
step 3: induction rule
- dp[i] = nums[i] == 1? 1+ dp[i - 1]: 0 (你自己都不是1,ending at 你肯定没有全1subarray)
step 4: fill in order
- left to right
step 5: return what
- globalMax of all dp[i]
*/
class Solution {
// public int findMaxConsecutiveOnes(int[] nums) {
// int[] dp = new int[nums.length];
// int max = nums[0];
// dp[0] = nums[0];
// for (int i = 1; i < nums.length; i++) {
// if (nums[i] == 1) {
// dp[i] = dp[i - 1] + 1;
// max = Math.max(dp[i], max);
// }
// else {
// dp[i] = 0;
// }
// }
// return max;
// }
public int findMaxConsecutiveOnes(int[] nums) {
int[] dp = new int[nums.length];
int max = nums[0];
int curDP = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] == 1) {
curDP = curDP + 1;
max = Math.max(curDP, max);
}
else {
curDP = 0;
}
}
return max;
}
}
```
Last updated