數組

A collection of 3 posts
[Leetcode] 27. Remove Element (移除元素) 題解紀錄
數組

[Leetcode] 27. Remove Element (移除元素) 題解紀錄

題目: Remove element (移除元素) 難度: 簡單 題目要求: 題目給定一個數組和一個值,刪除數組中和題目給定相同的值,並返回移除數組後的新長度 解題思路: 這一題我看到leetcode很多雙指針的解法,但其實這一題不用到雙指針也可以解決 我解決這題的思路其實就是 26. Remove Duplicates from Sorted Array (刪除有序數組中的重複項) 中的方法,只是雙指針變成了單指針,因為題目已經給定比對的值了 1. 設置邊界條件: 這一題主要也是要設置好邊界條件,避免溢出,邊界條件就是 (當前指針的位置 < 數組長度) 2. 指針前進的思路: 這題指針需要前進的狀況只有 (當前的值 !=目標值),只要 (當前的值 ==目標值),就把當前值原地刪除,後面的值就會遞補到當前指針的位置,再進行下一回合的比對,所以指針不必前進 3. 最後返回數組的總長度 這題的時間複雜度為 O(n),空間複雜度為 O(
1 min read
[Leetcode] 1. Two sum (兩數之和) 題解紀錄
數組

[Leetcode] 1. Two sum (兩數之和) 題解紀錄

題目: Two sum (兩數之和) 難度: 簡單 題目要求: 題目給定一個數組,和整數目標,找到數組中的其中兩個數加起來為目標值,並且返回數組索引 解題思路: 這題可以使用哈希表來記錄已經掃描過的數值和索引,只要 (目標值-現在數字) 存在於哈希表中,就返回 數組[哈希表的數值,當前索引] 這題使用哈希表就是使用時間換取空間來加快速度,所以時間複雜度可以做到 O(n),空間複雜度也是 O(n)
1 min read
[Leetcode] 26. Remove Duplicates from Sorted Array (刪除有序數組中的重複項) 題解紀錄
數組

[Leetcode] 26. Remove Duplicates from Sorted Array (刪除有序數組中的重複項) 題解紀錄

題目: Remove Duplicates from Sorted Array (刪除有序數組中的重複項) 難度: 簡單 題目要求: 刪除"升序"排列數組中的重複項。 解題思路: 這題的思路很簡單,使用快慢指針進行前後比對就可以了。 1. 設置邊界條件: 比較重要的是邊界條件的設置,只要快指針的大小小於數組的總長度,就可以防止溢出的狀況。 2. 指針前進的思路: 主要是因為這題的數組為升序排列,所以我們可以不管前面一樣的數字,只要前後指針都是一樣的數字,我們就把快指針的數字刪除,這樣子後面的數字就會遞補到快指針上,前後指針也就可以保持一樣的位置繼續做下一回合的比對,不需要做前進的動作,只有當前後數字不一樣的時候,前後指針才需要齊頭並進,進行後面的數字比對,直到比對到數組的底部,即完成題目要求的目標。 使用上面的思路,就可以把題目的時間複雜度做到 O(n)
1 min read