iT邦幫忙

2025 iThome 鐵人賽

DAY 5
2

https://ithelp.ithome.com.tw/upload/images/20250919/20177944ANqys0L9Xn.jpg

class Solution {//1493 O(N) O(1)
public:
    int longestSubarray(vector<int>& a) {
        int l = 0, r = 0, n = (int)a.size(), k = 1, ans = 0;
        for (; r < n; ++r) {
            if (a[r] == 0) --k;//用掉一格可刪0配額
            if (k < 0 && a[l++] == 0) ++k;丟到0才補回配額
            if (k >= 0 && r - l > ans) ans = r - l;//合法更新
        }
        return ans;
    }
};

1004和1493就多一個減 1
while可以一次消除多個0,但評估覺得沒有太大的必要性
zero不使用,因為沒有每步更新的需求


上一篇
Sliding Window 8->9 & 需要網頁與ppt好手:O
系列文
轉職仔之Data Science and ai master後的持續精進技術之路5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

2
AndyAWD
iT邦新手 2 級 ‧ 2025-09-19 22:08:04

第五天了,讚

:)謝謝老大

我要留言

立即登入留言