之二是,原來一個迴圈一次就只移動一次 r & l 嗎?!
然後都不用去算max 嗎XD 到底為什麼捏 QQ
說是跟 1004. Max Consecutive Ones III 題一樣 (k=1 , 並且回傳值減一)
但我當時就有一樣的疑問了哈哈哈~(痛哭)
int longestSubarray(int* nums, int numsSize) {
int r=0;
int l=0;
int max =0;
int k=1;
while (r < numsSize)
{
if (nums[r]==0)
k--;
if (k<0)
{
while (l<=r && nums[l]==1)
l++;
l++; // remove first 0 while nums[l] keep moving
k++;
}
if((r-l+1)> max)
max = r-l +1;
r++;
}
return max-1;
}
沒有留言:
張貼留言