前言:这个题目可以用状态dp来做,其实还有一个思路,类似滑动窗口,如果有遇到第二个0,左指针加一
class Solution {
public:int longestSubarray(vector<int>& nums) {int n = nums.size();vector<vector<int>> dp(n + 2, vector<int>(2));for (int i = 0; i < n; i++) {if (nums[i]) {dp[i + 1][0] = dp[i][0] + 1;dp[i + 1][1] = dp[i][1] + 1;}else {dp[i + 1][1] = dp[i][0];}}return dp[n][1];}
};