付費限定

滑動窗口應用: 刪掉一個元素之後,最長有幾個連續為1的子陣列_Leetcode 精選75題

閱讀時間約 3 分鐘

題目敘述

題目會給定一個二元陣列nums(也就是說,陣列元素只有0,1這兩種情況)。

我們必須從裡面選擇一個元素刪除之後,請問連續為1的最長子陣列的長度是多少?

題目的原文敘述



測試範例

Example 1:

Input: nums = [1,1,0,1]
Output: 3
Explanation: After deleting the number in position 2, [1,1,1] contains 3 numbers with value of 1's.

刪除0,陣列變成[1,1,1]連續為1的最長子陣列長度為3

Example 2:

Input: nums = [0,1,1,1,0,1,1,0,1]
Output: 5
Explanation: After deleting the number in position 4, [0,1,1,1,1,1,0,1] longest subarray with value of 1's is [1,1,1,1,1].

刪除中間的那個0,陣列變成[1,1,1,1,1]連續為1的最長子陣列長度為5

Example 3:

Input: nums = [1,1,1]
Output: 2
Explanation: You must delete one element.
選擇刪除最左邊或最右邊的1,陣列變成[1,1]連續為1的最長子陣列長度為2

演算法

關鍵在於題目的要求是子陣列,而不是子序列。

子陣列一定要求必須連續。因此,最適合的演算法框架為滑動窗口sliding window


題目要求我們必須從裡面選擇一個元素刪除

接著建立一個起始點從0開始的滑動窗口,依序從左向右滑動

遇到第一個0,就先設定為被刪除的元素。

遇到第二個0,就收縮左邊界,直到離開第一個0為止


每次窗口滑動時,動態更新最長子陣列的長度


程式碼

class Solution:
def longestSubarray(self, nums: List[int]) -> int:
ans = 0
count0 = 0

l = 0
for r, num in enumerate(nums):

if num == 0:
# delete zero
count0 += 1

while count0 == 2:
# meet two 0s, update left boundary
if nums[l] == 0:
count0 -= 1
l += 1

ans = max(ans, r - l)

return ans

複雜度分析

以行動支持創作者!付費即可解鎖
本篇內容共 1358 字、1 則留言,僅發佈於Leetcode精選75題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
86會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
題目敘述 題目會給定一個二元陣列nums(也就是說,陣列元素只有0,1這兩種情況)和指定的k值。 我們最多可以把k個0反轉成1,請問連續唯一的最長子陣列的長度是多少? 題目的原文敘述 測試範例 Example 1: Input: nums = [1,1,1,0,0,0,1,1,1,1,
題目敘述 題目會給定一個字串s,和指定長度k,問我們包含母音的子字串中,母音數量的最大值是多少? 題目的原文敘述 測試範例 Example 1: Input: s = "abciiidef", k = 3 Output: 3 Explanation: The substring "iii
題目敘述 題目會給定一個有n個整數的陣列nums和指定的k值,問我們長度為k的子陣列的平均值的最大值是多少? 題目的原文敘述 測試範例 Example 1: Input: nums = [1,12,-5,-6,50,3], k = 4 Output: 12.75000 Explanati
題目敘述 題目會給定我們一個整數陣列nums,我們每回合可以挑選總和為K的兩個數字,形成一個K-Sum pair。 請問我們最多可以製造幾個K-Sum pair? 題目的原文敘述 測試範例 Example 1: Input: nums = [1,2,3,4], k = 5 Output
題目敘述 題目會給定我們一個整數陣列nums,要求我們把裡面的0做元素交換,把0都搬到陣列的右邊。題目要求必須in-place在原本的陣列裡面做操作,不可以額外建立新的陣列。 題目的原文敘述 測試範例 Example 1: Input: nums = [0,1,0,3,12] Outpu
題目敘述 題目會給我們一個輸入陣列nums,要求我們判斷輸入陣列nums內部是否存在長度為三的遞增子序列? 題目的原文敘述 測試範例 Example 1: Input: nums = [1,2,3,4,5] Output: true Explanation: Any triplet wh
題目敘述 題目會給定一個二元陣列nums(也就是說,陣列元素只有0,1這兩種情況)和指定的k值。 我們最多可以把k個0反轉成1,請問連續唯一的最長子陣列的長度是多少? 題目的原文敘述 測試範例 Example 1: Input: nums = [1,1,1,0,0,0,1,1,1,1,
題目敘述 題目會給定一個字串s,和指定長度k,問我們包含母音的子字串中,母音數量的最大值是多少? 題目的原文敘述 測試範例 Example 1: Input: s = "abciiidef", k = 3 Output: 3 Explanation: The substring "iii
題目敘述 題目會給定一個有n個整數的陣列nums和指定的k值,問我們長度為k的子陣列的平均值的最大值是多少? 題目的原文敘述 測試範例 Example 1: Input: nums = [1,12,-5,-6,50,3], k = 4 Output: 12.75000 Explanati
題目敘述 題目會給定我們一個整數陣列nums,我們每回合可以挑選總和為K的兩個數字,形成一個K-Sum pair。 請問我們最多可以製造幾個K-Sum pair? 題目的原文敘述 測試範例 Example 1: Input: nums = [1,2,3,4], k = 5 Output
題目敘述 題目會給定我們一個整數陣列nums,要求我們把裡面的0做元素交換,把0都搬到陣列的右邊。題目要求必須in-place在原本的陣列裡面做操作,不可以額外建立新的陣列。 題目的原文敘述 測試範例 Example 1: Input: nums = [0,1,0,3,12] Outpu
題目敘述 題目會給我們一個輸入陣列nums,要求我們判斷輸入陣列nums內部是否存在長度為三的遞增子序列? 題目的原文敘述 測試範例 Example 1: Input: nums = [1,2,3,4,5] Output: true Explanation: Any triplet wh
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
今天的客戶尋找到台灣好椅,想請師傅們幫忙更換椅輪,客戶說想將普通輪更換為固定腳,固定腳的設計就是讓椅子無法滑動,只能將椅子抬起來移動,雖然較不便利,但很適合老人、小孩、家裡養寵物的朋友們,可以在乘坐時更安全,是一種很安全實用的設計,台灣好椅賣椅子時,也有客戶請我們直接把輪子更換成固定腳。
Thumbnail
這本書教你與他人建立有意義的情感連結, 邁向嶄新的人生。 作者是心理學博士, 她用交友軟體和一百個男人約會後, 結合心理學理論與約會實戰, 寫成此書。 我正在同時閱讀的“人脈複利”提到一個概念, 這本書也有相似的觀點。 就是感情關係正向的人身體比較健康, 也較長壽。 人脈好的人身心都會較健康。 An
Thumbnail
你好,這裡是股市鴿~ 華德動能(2237) 今天我想要介紹一家台灣的電動巴士廠華德動能(2237),它是一家在電動商用車領域有自主設計開發能力的公司,也是國內電動巴士市場佔有率超過50%的領導廠商。 電動巴士政策 華德動能受益於政府補助政策,今年電巴出貨加速,28日將交給大南客運示範型三期電巴48輛
Thumbnail
大家喜歡吃肉粽嗎? 肉粽對我來說像蝦子般的存在,雖然很喜歡吃但不喜歡將雙手用得油油的。每次都在思考粽葉的存在不就是方便食用,但光是拆開繩子、翻開粽葉,雙手就油膩膩的了🚣雖然離端午節還有一段時間,但家人已經先去好市多買一箱【晶華冷凍燒肉粽晶華200公克 X 5入】回家吃了。
Thumbnail
我想不少人有跟我有相同的困擾,長期盯著螢幕,稍微疲憊一些,隔天睡醒容易短暫出現會移動的小黑點。雖然到了眼科檢查,醫生說不影響視力,定期追蹤就好,但還是會讓人心生擔憂,想要好好日常做保健。
Thumbnail
「Culture On the move」是一場展開的運動,集結眾人的力量共同參與探索,對一切文化的可能性與想法保持開放,找尋臺灣在世界文化市場上獨樹一格的魅力,而這場運動也將會一直持續下去—Culture  always On the move!
Thumbnail
如果你看過醫生或做過一些互聯網研究,在尋找脊椎疼痛的原因及椎間盤突出治療時,你無疑會遇到“神經受壓”、 “椎間盤突出”和“椎間盤滑動”等術語。這些術語在許多文章和討論中經常互換使用,但它們是什麼意思?有什麼不同?你怎麼知道是哪一個給你帶來了痛苦? 有椎間盤突出還是椎間盤滑動?
今天,2021.08.25,我在資策會的Big Data數據分析班正式開訓。 身為一個一直以來的文組少女,懷著既害怕又期待的心情,決定在此抒發我往後的情緒及紀錄上課筆記。
Thumbnail
  在尋常人眼裡看來,疾馳而過的霄天簡直跟一陣風沒兩樣,路上兩、三人即便是精明著四處鎖定客人的商家等霄天擦身過後,也只覺晚風微涼,神奇的是比起城門那時不過一時半刻速度似乎又更快了一些,霄天打算穿過比平常還多人的街道早點回去。  "呃!"突然被石子絆到的南宮曉雪,走在她身後的南宮若月注意到時伸手去拉已
Thumbnail
可應用在 AP 元素(DIV)內的影像水平滑動切換,搭配巢狀 AP 元素(DIV)與內嵌式頁框,媲美 Animate 互動瀏覽影像效果。 A.加入 AP DIV 於頁面上 在 Dreamweaver 中,要加入 AP  DIV 除了設定 CSS 外,更簡單的方式是使用繪製 AP  DIV 工具,
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
今天的客戶尋找到台灣好椅,想請師傅們幫忙更換椅輪,客戶說想將普通輪更換為固定腳,固定腳的設計就是讓椅子無法滑動,只能將椅子抬起來移動,雖然較不便利,但很適合老人、小孩、家裡養寵物的朋友們,可以在乘坐時更安全,是一種很安全實用的設計,台灣好椅賣椅子時,也有客戶請我們直接把輪子更換成固定腳。
Thumbnail
這本書教你與他人建立有意義的情感連結, 邁向嶄新的人生。 作者是心理學博士, 她用交友軟體和一百個男人約會後, 結合心理學理論與約會實戰, 寫成此書。 我正在同時閱讀的“人脈複利”提到一個概念, 這本書也有相似的觀點。 就是感情關係正向的人身體比較健康, 也較長壽。 人脈好的人身心都會較健康。 An
Thumbnail
你好,這裡是股市鴿~ 華德動能(2237) 今天我想要介紹一家台灣的電動巴士廠華德動能(2237),它是一家在電動商用車領域有自主設計開發能力的公司,也是國內電動巴士市場佔有率超過50%的領導廠商。 電動巴士政策 華德動能受益於政府補助政策,今年電巴出貨加速,28日將交給大南客運示範型三期電巴48輛
Thumbnail
大家喜歡吃肉粽嗎? 肉粽對我來說像蝦子般的存在,雖然很喜歡吃但不喜歡將雙手用得油油的。每次都在思考粽葉的存在不就是方便食用,但光是拆開繩子、翻開粽葉,雙手就油膩膩的了🚣雖然離端午節還有一段時間,但家人已經先去好市多買一箱【晶華冷凍燒肉粽晶華200公克 X 5入】回家吃了。
Thumbnail
我想不少人有跟我有相同的困擾,長期盯著螢幕,稍微疲憊一些,隔天睡醒容易短暫出現會移動的小黑點。雖然到了眼科檢查,醫生說不影響視力,定期追蹤就好,但還是會讓人心生擔憂,想要好好日常做保健。
Thumbnail
「Culture On the move」是一場展開的運動,集結眾人的力量共同參與探索,對一切文化的可能性與想法保持開放,找尋臺灣在世界文化市場上獨樹一格的魅力,而這場運動也將會一直持續下去—Culture  always On the move!
Thumbnail
如果你看過醫生或做過一些互聯網研究,在尋找脊椎疼痛的原因及椎間盤突出治療時,你無疑會遇到“神經受壓”、 “椎間盤突出”和“椎間盤滑動”等術語。這些術語在許多文章和討論中經常互換使用,但它們是什麼意思?有什麼不同?你怎麼知道是哪一個給你帶來了痛苦? 有椎間盤突出還是椎間盤滑動?
今天,2021.08.25,我在資策會的Big Data數據分析班正式開訓。 身為一個一直以來的文組少女,懷著既害怕又期待的心情,決定在此抒發我往後的情緒及紀錄上課筆記。
Thumbnail
  在尋常人眼裡看來,疾馳而過的霄天簡直跟一陣風沒兩樣,路上兩、三人即便是精明著四處鎖定客人的商家等霄天擦身過後,也只覺晚風微涼,神奇的是比起城門那時不過一時半刻速度似乎又更快了一些,霄天打算穿過比平常還多人的街道早點回去。  "呃!"突然被石子絆到的南宮曉雪,走在她身後的南宮若月注意到時伸手去拉已
Thumbnail
可應用在 AP 元素(DIV)內的影像水平滑動切換,搭配巢狀 AP 元素(DIV)與內嵌式頁框,媲美 Animate 互動瀏覽影像效果。 A.加入 AP DIV 於頁面上 在 Dreamweaver 中,要加入 AP  DIV 除了設定 CSS 外,更簡單的方式是使用繪製 AP  DIV 工具,