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

LeetCode 1431: Kids With the Greatest Number of Candies

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

基本資料
#

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

  • 提交紀錄:Wrong Answer → Accepted ×2

解題思路
#

把額外的糖果全部給一個小孩,他要跟原本的最大值一樣多或更多,才會是最多的(Array 模板三)。題目說可以有多個小孩同時最多,所以平手也算。

我的嘗試
#

第一版用 >,平手沒有算進去。例如 candies = [3]、extraCandies = 0:唯一的小孩本來就是最多的,答案 [True],這版回傳 [False]。改成 >= 就 AC 了;第三次提交把 max(candies) 移到迴圈外面。

正確解法
#

class Solution:
    def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]:
        top = max(candies)
        return [c + extraCandies >= top for c in candies]

複雜度
#

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

要特別避免的錯誤
#

  • 用 >=,平手也算最多。
  • 最大值先算好,不要在 list comprehension 裡每次重算(那會變成 O(n²))。

面試口說整理
#

我先算出最大值,每個小孩加上額外的糖果之後只要不少於最大值就是 True,平手也算。時間 O(n)。

相關文章

LeetCode 3487: Maximum Unique Subarray Sum After Deletion
·1 分鐘
LeetCode Easy Greedy Hash-Table Array
LeetCode 3487 解題筆記:可以任意刪除,所以等於挑不重複的值;非負的全拿,全是負數時只拿最大的一個
LeetCode 3131: Find the Integer Added to Array I
·1 分鐘
LeetCode Easy Array
LeetCode 3131 解題筆記:每個數都加上同一個 x,所以 x 就是兩個陣列最小值的差(或總和的差除以長度)
LeetCode 3074: Apple Redistribution into Boxes
·1 分鐘
LeetCode Easy Array Greedy Sorting
LeetCode 3074 解題筆記:箱子可以隨便分,所以從容量最大的箱子開始拿,總容量夠裝所有蘋果就停
LeetCode 2099: Find Subsequence of Length K With the Largest Sum
·1 分鐘
LeetCode Easy Array Hash-Table Sorting Heap-Priority-Queue
LeetCode 2099 解題筆記:選出最大的 k 個數(連同 index),再按 index 排回原本的順序
LeetCode 2335: Minimum Amount of Time to Fill Cups
·1 分鐘
LeetCode Easy Array Greedy Sorting Heap-Priority-Queue
LeetCode 2335 解題筆記:答案是 max(最多的那種, ceil(總數 / 2));模擬的話每秒從最多的兩種各裝一杯
LeetCode 1464: Maximum Product of Two Elements in an Array
·1 分鐘
LeetCode Easy Array Sorting Heap-Priority-Queue
LeetCode 1464 解題筆記:值都是正數,取最大的兩個數 a、b,答案是 (a - 1)(b - 1)