↓快轉到主要內容
  1. LeetCode/

LeetCode 3069: Distribute Elements Into Two Arrays I

·1 分鐘· ·
LeetCode Easy Array Two-Pointers Simulation
Wei Yi Chung
作者
Wei Yi Chung
Working at the contributing of open source, distributed systems, and data engineering.
目錄

基本資料
#

難易度: easy 第一次嘗試:2024-03-03

  • 提交紀錄:Accepted(一次通過)

解題思路
#

直接照規則模擬(Array 模板五):arr1 = [nums[0]]、arr2 = [nums[1]],之後每個數看 arr1[-1] > arr2[-1] 決定放哪邊,最後接起來。

我的解法
#

class Solution:
    def resultArray(self, nums: List[int]) -> List[int]:
        a, b = [nums[0]], [nums[1]]
        for x in nums[2:]:
            (a if a[-1] > b[-1] else b).append(x)
        return a + b

複雜度
#

時間 O(n),空間 O(n)。

要特別避免的錯誤
#

  • 比的是兩個陣列的最後一個元素,不是總和。

面試口說整理
#

我照題目的規則模擬,每個數放到最後一個元素比較大的那個陣列,最後把兩個陣列接起來。時間 O(n)。

相關文章

LeetCode 942: DI String Match
·1 分鐘
LeetCode Easy Array Two-Pointers String Greedy
LeetCode 942 解題筆記:兩個指標分別指向還沒用的最小值和最大值,遇到 I 放最小、遇到 D 放最大
LeetCode 682: Baseball Game
·1 分鐘
LeetCode Easy Array Stack Simulation
LeetCode 682 解題筆記:用 stack 存有效的分數,C 刪掉最後一個,D 加入兩倍,+ 加入最後兩個的和
LeetCode 349: Intersection of Two Arrays
·1 分鐘
LeetCode Easy Array Hash-Table Two-Pointers Binary-Search
LeetCode 349 解題筆記:兩個陣列各轉成集合取交集
LeetCode 350: Intersection of Two Arrays II
·1 分鐘
LeetCode Easy Array Hash-Table Two-Pointers Binary-Search
LeetCode 350 解題筆記:保留重複次數的交集,Counter 相交(&)取兩邊次數的較小值
LeetCode 1646: Get Maximum in Generated Array
·1 分鐘
LeetCode Easy Array Simulation
LeetCode 1646 解題筆記:照規則生成陣列:偶數位置 nums[i // 2],奇數位置 nums[i // 2] + nums[i // 2 + 1],n = 0 要特別處理
LeetCode 1089: Duplicate Zeros
·1 分鐘
LeetCode Easy Array Two-Pointers
LeetCode 1089 解題筆記:先數有幾個 0 決定每個數要往後移幾格,再從後往前搬,遇到 0 時把複製的那個 0 也寫進去