付費限定

【專論】用 10 個 methods 解析陣列的 CRUD 操作

更新 發佈閱讀 4 分鐘


★ 付費 Premium 專享 ★


↑看個小廣告,支持好內容↑



陣列可以說是最常見的資料結構,LeetCode 裡的題目有過半都和 Array 有關,因此也通常是解題新手的第一站。在第一篇專文,我們就從它的操作方法講起。


❶ 新增:unshift、push

兩者都是把東西放進陣列,只不過一個從頭放、一個則是從尾巴:

// arr=[1,2,3]

arr.unshift(4,5) // [4,5,1,2,3]
arr.push(4,5) // [1,2,3,4,5]


通常來說 push 會比較廣用,原因是陣列的每項資料都有固定的儲存位置push 只要在末端加開一個空位,但 unshift 卻需要把每一項都向後搬移,不是很經濟的做法。


❷ 刪除:shift、pop

同上,一個從頭刪 O(n)、一個則從尾巴 O(1)

// arr=[1,2,3,4]

arr.shift() // [2,3,4]
arr.pop() // [1,2,3]


上述四項操作都會直接改變陣列,若你還對棒球比賽有印象,這張圖你應該不陌生:

後進者先出 (LIFO, Last-In-First-Out) VS 先進者先出 (FIFO, First-In-First-Out)

後進者先出 (LIFO, Last-In-First-Out) VS 先進者先出 (FIFO, First-In-First-Out)

Stack 的操作都是從陣列的末端,我們可用 push、pop 來實現;而 Queue 則是尾進頭出,對應到的方法是 push 和 shift。


❸ 排序:sort

sort 也是原地變化的操作,預設的排序方式是根據字元 unicode

// arr=[1,75,8,324,100]

arr.sort() // [1,100,324,75,8]
arr.sort((a,b)=>a-b) // [1,8,75,100,324]
arr.sort((a,b)=>b-a) // [324,100,75,8,1]


尋找與篩選:indexOf、filter

indexOf 會輸出第一個符合項目的位置;filter 則是回傳滿足條件者的陣列

// arr=[1,75,8,324,100]

arr.indexOf(8) // 2
arr.indexOf(4) // -1 (沒有找到)
arr.filter(x=>x>80) // [324,100]
arr.filter(x=>x<=0) // [] (沒有找到)


新增、刪除、查詢甚至排列都有了,最後來玩點運算處理吧!


❺ 運算:join、map、reduce

首先是文字轉換,陣列可以透過 join 將各項連接成文字,反之文字也可藉由 split 分割成一組陣列。

// arr=[1,0,1,1,0,0,1]

arr.join("") // "1011001"
arr.join("#") // "1#0#1#1#0#0#1" (以#作為連接符)


reduce 我們教過了,公式還記得嗎?

以行動支持創作者!付費即可解鎖
本篇內容共 1813 字、0 則留言,僅發佈於哩哩叩叩平安符:LeetCode 刷題筆記你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
留言分享你的想法!
avatar-img
LeetCode King
55會員
59內容數
我要成為 LeetCode 王!快跟我一起踏上旅程!
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
給定一個字串陣列,請把它們所共有的字元伴隨著出現次數輸出。這篇文章介紹如何使用字典統計出現次數,和字典取交集的方法來解決此問題。並提供了複雜度分析和關鍵知識點。
Thumbnail
給定一個字串陣列,請把它們所共有的字元伴隨著出現次數輸出。這篇文章介紹如何使用字典統計出現次數,和字典取交集的方法來解決此問題。並提供了複雜度分析和關鍵知識點。
Thumbnail
【這個系列,目標是以比較輕鬆的方式讓大家一起學習AE表達式。】 本文是番外篇 3,主要是一些概念的補充,介紹陣列。
Thumbnail
【這個系列,目標是以比較輕鬆的方式讓大家一起學習AE表達式。】 本文是番外篇 3,主要是一些概念的補充,介紹陣列。
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
題目會給定一個陣列nums和一個目標值goal。計算子陣列總和=goal的數目有多少。演算法包含前綴和和字典的技巧,時間複雜度為O(n),空間複雜度為O(n)。
Thumbnail
題目會給定一個陣列nums和一個目標值goal。計算子陣列總和=goal的數目有多少。演算法包含前綴和和字典的技巧,時間複雜度為O(n),空間複雜度為O(n)。
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News