串列應用: 合併非零的節點 Merge Nodes in Between Zeros_Leetcode #2181

閱讀時間約 4 分鐘

題目敘述 Merge Nodes in Between Zeros

給定一個鏈結串列,合併非零區間的節點(以加總的方式合併),輸出合併後的鏈結串列。


測試範例

Example 1:

raw-image
Input: head = [0,3,1,0,4,5,2,0]
Output: [4,11]
Explanation:
The above figure represents the given linked list. The modified list contains
- The sum of the nodes marked in green: 3 + 1 = 4.
- The sum of the nodes marked in red: 4 + 5 + 2 = 11.


Example 2:

raw-image
Input: head = [0,1,0,3,0,2,2,0]
Output: [1,3,4]
Explanation:
The above figure represents the given linked list. The modified list contains
- The sum of the nodes marked in green: 1 = 1.
- The sum of the nodes marked in red: 3 = 3.
- The sum of the nodes marked in yellow: 2 + 2 = 4.

約束條件

Constraints:

  • The number of nodes in the list is in the range [3, 2 * 10^5].

節點總數目介於3~二十萬之間。

  • 0 <= Node.val <= 1000

節點值都介於0~1000 之間。

  • There are no two consecutive nodes with Node.val == 0.

不會有兩個相鄰的zero nodes

  • The beginning and end of the linked list have Node.val == 0.

第一個節點 和 最後一個節點保證是0


演算法 找出合併規律

如果現在這個節點的節點值非零,就持續累加節點值,直到遇到zero node為止。

如果現在這個節點的節點值為零,則把加總的值更新到前一個節點prev上,接著啟動下一次的合併流程,直到遇到整條串列的尾端為止。


程式碼 找出合併規律

class Solution:
def mergeNodes(self, head: Optional[ListNode]) -> Optional[ListNode]:

def merge(prev, cur, val):

if cur.val == 0:
# Merge nodes between 0s
prev.val = val

if cur.next is None:
# Tail node
prev.next = None
else:
# Non-tail node
prev.next = cur
merge(cur, cur.next, 0)
else:
# Keep accumulate value of node
merge(prev, cur.next, val+cur.val)

#---------------------------------
merge(head, head.next, 0)
return head

複雜度分析

時間複雜度: O(n)

從頭到尾,每個節點拜訪一次,並且在過程中合併非零節點。

空間複雜度: O(n)

從頭到尾,每個節點拜訪一次,並且在過程中合併非零節點。
DFS call stack深度最深為O(n)


Reference

[1] Merge Nodes in Between Zeros - LeetCode

75會員
406內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
題目敘述 All Ancestors of a Node in a Directed Acyclic Graph 給定一個有向無環圖,請找出每個點的祖先,以陣列的形式返回答案。
題目敘述 Binary Tree Maximum Path Sum 給定一個二元樹,請找出最大的區間路徑和是多少? 註: 區間路徑和 = 某個節點a -> 某個節點b的路徑節點值總和。
題目敘述 House Robber III 題目會給我們一個二元樹, 二元樹裡的每個節點分別代表每棟房屋的價值,也就是房屋內有的現金數量。 題目敘述給的情境是假想盜賊要偷東西,限制是上下相鄰樓層的兩棟房屋不能一起偷,只能選擇其中一棟,否則就會觸發警報器。 請問盜賊可以得手的最大金額是多少?
探討如何使用DP動態規劃的方法來進行單字串接,包含了DP遞迴關係式、狀態定義、優化技巧和程式碼示例。同時分析了時間複雜度、空間複雜度和關鍵知識點。這是LeetCode的一個應用題,類似於Word Break I的延伸。
知道如何從一組給定的英文字母和單字庫中的單字拼出最高分的單字組合。使用DFS + 回溯法 + 剪枝優化的演算法,詳細分析瞭如何展開所有可能的路徑,並且找出符合條件的狀態,協助讀者理解演算法背後的思維和方法。
子集合生成是一道經典的組合類上機考和面試題目。本篇文章介紹多個不同的解決方案,以及相關演算法框架。主要目標是給定n個相異的元素,產生所有的子集合。
題目敘述 All Ancestors of a Node in a Directed Acyclic Graph 給定一個有向無環圖,請找出每個點的祖先,以陣列的形式返回答案。
題目敘述 Binary Tree Maximum Path Sum 給定一個二元樹,請找出最大的區間路徑和是多少? 註: 區間路徑和 = 某個節點a -> 某個節點b的路徑節點值總和。
題目敘述 House Robber III 題目會給我們一個二元樹, 二元樹裡的每個節點分別代表每棟房屋的價值,也就是房屋內有的現金數量。 題目敘述給的情境是假想盜賊要偷東西,限制是上下相鄰樓層的兩棟房屋不能一起偷,只能選擇其中一棟,否則就會觸發警報器。 請問盜賊可以得手的最大金額是多少?
探討如何使用DP動態規劃的方法來進行單字串接,包含了DP遞迴關係式、狀態定義、優化技巧和程式碼示例。同時分析了時間複雜度、空間複雜度和關鍵知識點。這是LeetCode的一個應用題,類似於Word Break I的延伸。
知道如何從一組給定的英文字母和單字庫中的單字拼出最高分的單字組合。使用DFS + 回溯法 + 剪枝優化的演算法,詳細分析瞭如何展開所有可能的路徑,並且找出符合條件的狀態,協助讀者理解演算法背後的思維和方法。
子集合生成是一道經典的組合類上機考和面試題目。本篇文章介紹多個不同的解決方案,以及相關演算法框架。主要目標是給定n個相異的元素,產生所有的子集合。
你可能也想看
Thumbnail
「設計不僅僅是外觀和感覺。設計是其運作的方式。」 — Steve Jobs 身為一個獨立文案,許多人會以為我們的生活只需要面對電腦,從無到有,用精巧的文字填滿空白的螢幕,呈現心目中獨具風格的作品。 ——有的時候可以如此,但其實這是我們夢寐以求的偶發日常。 更多的時候,白天的工作時間總被各種繁雜
Thumbnail
台股、美股近期明顯回檔,市場敘事發生改變,壞消息一樁接一樁出現,下一步該怎麼走呢?本文將探討近期的宏觀經濟事件,並分享個人的操作思考。
Thumbnail
隨著企業數位轉型的步伐加快,提升工作效率和降低成本成為了重要目標。 在這個過程中,RPA與API結合使用,為企業帶來了更高效、更智能的自動化解決方案。 RPAI 數位優化器將和大家一起探討RPA與API串接的應用,並分析其在不同領域中的實際效益。
Thumbnail
sudo-flix 開源串流媒體應用程式,連結多個線上影視服務,搜尋影片名稱即可免費觀看電影/電視劇。不用安裝、無須註冊、完全免費。
Thumbnail
隨著獲取新客的成本逐年升高,維繫舊客的重要性愈顯重要。近年來,「會員經營」成為顯學:品牌該如何準確洞悉既有用戶的心,配合行銷策略推動持續運轉的銷售飛輪?這一切都要從「數據收集」開始,當品牌能獲取詳盡的會員數據,包含個人資料、消費習慣、價值偏好等,才能進一步針對會員貼標分類,並發想最適合的行銷溝通方式
Thumbnail
尼爾森·佩爾茲(Nelson Peltz)是美國億萬富翁商人和投資者。他是紐約的另類投資管理基金Trian Fund Management的創始合夥人,該基金專注於投資和參與各種公司的經營和管理。他曾參與了對迪士尼公司的代理權爭奪戰,曾透過股東權益,嘗試影響該公司的決策和管理。即使代理權爭奪戰告終,
Thumbnail
▌葉郎每日讀報:新冠和串流聯手重創了觀影禮儀,但更有破壞力的社群才是最大魔王 ▌ 20230803 《Barbie 芭比》的全球票房正逼近10億美元大關。久違的現象級大片也驅動了大量睽違電影院已久的觀眾重新回到有點陌生的電影院。 然後狀況就出現了...... 本週一,TikTok 上開始
Thumbnail
 文、圖/OneAD果實夥伴提供   OneAD SuperView串流影音廣告平台與百家指標性媒體合作,擁有戲劇電影、綜藝育樂、親子、運動賽事、動漫、遊戲、時尚美妝、生活娛樂、新聞時事等多元熱門串流影音內容,是現行市場上Instream廣告流量種類最齊全的影音平台。本月更宣布,每
Thumbnail
早些時候在台灣市場,問觀眾認識的串流平台,可能多半的回答都是Netflix,有些人可能也有觀望過Disney+、APPLE TV、HBO。 但鮮為人知的是,亞馬遜旗下的Amazon Prime Video也有許多優質好劇。究竟有哪些影集&電影推薦,一起來看看吧!
Thumbnail
數位串流音樂平台的數據報導,有一些統計的數據,值得觀察與了解。
Thumbnail
                                今年暑假的尾巴,台灣迪士尼頻道 Disney Channel Taiwan 於官方臉書拋出一記震撼彈:「迪士尼頻道將於 2022 年 1 月 1 日在台灣終止營運。」這橫跨多個世代、陪伴台灣人已屆 26 年的卡通節目,在有線
Thumbnail
  從大學時期加入社團後開始接觸獨立音樂,起初是因為特別喜歡抒情歌和吉他伴奏的歌曲,聽著聽著也愛上了節奏感較強烈的曲風(尤其BASS音軌越多越愛!),甚至是電子混音都在我的日常歌單中,隨著聽的時間越長,漸漸地讓我找到了聽音樂的最佳模式,當初踏入非主流音樂時,身邊沒有太多的資訊,因此誕生了這篇文章,希
Thumbnail
「設計不僅僅是外觀和感覺。設計是其運作的方式。」 — Steve Jobs 身為一個獨立文案,許多人會以為我們的生活只需要面對電腦,從無到有,用精巧的文字填滿空白的螢幕,呈現心目中獨具風格的作品。 ——有的時候可以如此,但其實這是我們夢寐以求的偶發日常。 更多的時候,白天的工作時間總被各種繁雜
Thumbnail
台股、美股近期明顯回檔,市場敘事發生改變,壞消息一樁接一樁出現,下一步該怎麼走呢?本文將探討近期的宏觀經濟事件,並分享個人的操作思考。
Thumbnail
隨著企業數位轉型的步伐加快,提升工作效率和降低成本成為了重要目標。 在這個過程中,RPA與API結合使用,為企業帶來了更高效、更智能的自動化解決方案。 RPAI 數位優化器將和大家一起探討RPA與API串接的應用,並分析其在不同領域中的實際效益。
Thumbnail
sudo-flix 開源串流媒體應用程式,連結多個線上影視服務,搜尋影片名稱即可免費觀看電影/電視劇。不用安裝、無須註冊、完全免費。
Thumbnail
隨著獲取新客的成本逐年升高,維繫舊客的重要性愈顯重要。近年來,「會員經營」成為顯學:品牌該如何準確洞悉既有用戶的心,配合行銷策略推動持續運轉的銷售飛輪?這一切都要從「數據收集」開始,當品牌能獲取詳盡的會員數據,包含個人資料、消費習慣、價值偏好等,才能進一步針對會員貼標分類,並發想最適合的行銷溝通方式
Thumbnail
尼爾森·佩爾茲(Nelson Peltz)是美國億萬富翁商人和投資者。他是紐約的另類投資管理基金Trian Fund Management的創始合夥人,該基金專注於投資和參與各種公司的經營和管理。他曾參與了對迪士尼公司的代理權爭奪戰,曾透過股東權益,嘗試影響該公司的決策和管理。即使代理權爭奪戰告終,
Thumbnail
▌葉郎每日讀報:新冠和串流聯手重創了觀影禮儀,但更有破壞力的社群才是最大魔王 ▌ 20230803 《Barbie 芭比》的全球票房正逼近10億美元大關。久違的現象級大片也驅動了大量睽違電影院已久的觀眾重新回到有點陌生的電影院。 然後狀況就出現了...... 本週一,TikTok 上開始
Thumbnail
 文、圖/OneAD果實夥伴提供   OneAD SuperView串流影音廣告平台與百家指標性媒體合作,擁有戲劇電影、綜藝育樂、親子、運動賽事、動漫、遊戲、時尚美妝、生活娛樂、新聞時事等多元熱門串流影音內容,是現行市場上Instream廣告流量種類最齊全的影音平台。本月更宣布,每
Thumbnail
早些時候在台灣市場,問觀眾認識的串流平台,可能多半的回答都是Netflix,有些人可能也有觀望過Disney+、APPLE TV、HBO。 但鮮為人知的是,亞馬遜旗下的Amazon Prime Video也有許多優質好劇。究竟有哪些影集&電影推薦,一起來看看吧!
Thumbnail
數位串流音樂平台的數據報導,有一些統計的數據,值得觀察與了解。
Thumbnail
                                今年暑假的尾巴,台灣迪士尼頻道 Disney Channel Taiwan 於官方臉書拋出一記震撼彈:「迪士尼頻道將於 2022 年 1 月 1 日在台灣終止營運。」這橫跨多個世代、陪伴台灣人已屆 26 年的卡通節目,在有線
Thumbnail
  從大學時期加入社團後開始接觸獨立音樂,起初是因為特別喜歡抒情歌和吉他伴奏的歌曲,聽著聽著也愛上了節奏感較強烈的曲風(尤其BASS音軌越多越愛!),甚至是電子混音都在我的日常歌單中,隨著聽的時間越長,漸漸地讓我找到了聽音樂的最佳模式,當初踏入非主流音樂時,身邊沒有太多的資訊,因此誕生了這篇文章,希