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

LeetCode 3423: Maximum Difference Between Adjacent Elements in a Circular Array

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

基本資料
#

難易度: easy 第一次嘗試:2025-07-17

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

解題思路
#

每一對相鄰元素算一次差的絕對值取最大(Array 模板一)。環狀代表最後一個和第一個也相鄰。Python 的 nums[-1] 就是最後一個,所以讓 i 從 0 開始、跟 nums[i - 1] 比,就一次涵蓋所有相鄰配對。

我的解法
#

class Solution:
    def maxAdjacentDistance(self, nums: List[int]) -> int:
        return max(abs(nums[i] - nums[i - 1]) for i in range(len(nums)))

我當時另外加上 abs(nums[-1] - nums[0]),效果一樣。

複雜度
#

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

要特別避免的錯誤
#

  • 別忘了頭尾也相鄰。

面試口說整理
#

我算每一對相鄰元素的差,包含最後一個和第一個,取最大值。用 nums[i - 1] 從 i = 0 開始,就會自然包含頭尾那一對。時間 O(n)。

相關文章

LeetCode 3550: Smallest Index With Digit Sum Equal to Index
·1 分鐘
LeetCode Easy Math Array
LeetCode 3550 解題筆記:由小到大檢查每個 index,算位數和,第一個相等的就是答案
LeetCode 1979: Find Greatest Common Divisor of Array
·1 分鐘
LeetCode Easy Math Number-Theory Gcd Array
LeetCode 1979 解題筆記:找出最小值和最大值,用輾轉相除法算 GCD
LeetCode 1920: Build Array from Permutation
·1 分鐘
LeetCode Easy Array Simulation
LeetCode 1920 解題筆記:照定義 ans[i] = nums[nums[i]];要 O(1) 額外空間時,把新值乘 n 疊在原本的值上
LeetCode 2094: Finding 3-Digit Even Numbers
·1 分鐘
LeetCode Easy Hash-Table Enumeration Array
LeetCode 2094 解題筆記:反過來枚舉 100 到 998 的偶數,檢查需要的每個數字次數夠不夠;Counter 相減只留正數
LeetCode 2176: Count Equal and Divisible Pairs in an Array
·1 分鐘
LeetCode Easy Array
LeetCode 2176 解題筆記:n 只有 100,枚舉所有配對;條件是值相等而且 index 的乘積 i * j 能被 k 整除
LeetCode 3507: Minimum Pair Removal to Sort Array I
·1 分鐘
LeetCode Easy Simulation Array
LeetCode 3507 解題筆記:n 很小直接模擬,切片賦值右邊要是 list