付費限定

滑動窗口應用: 刪掉一個元素之後,最長有幾個連續為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題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
avatar-img
88會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
題目敘述 題目會給定一個二元陣列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
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
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
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
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 工具,