← 返回博客列表
Amazon

Amazon VO:連續子陣列求和問題全解析

2025-10-10

Amazon back-to-back 面試中的經典題目。本文通過連續子陣列求和問題,展示前綴和與滑動視窗的應用,oavoservice 助你快速掌握核心技巧。

📋 題目描述

給定一個整數陣列和目標和,找到和等於目標值的連續子陣列。

範例:

Input: nums = [1, 2, 3, 7, 5], target = 12
Output: [2, 4] (子陣列 [3, 7, 5])

🎯 核心考點

  1. 前綴和 - 快速計算區間和
  2. 雜湊表 - O(n) 時間複雜度
  3. 滑動視窗 - 正數陣列的優化
  4. 邊界處理 - 多個解的情況

💡 解題思路(oavoservice 指導)

方法一:前綴和 + 雜湊表

def subarraySum(nums, target):
    prefix_sum = 0
    sum_map = {0: -1}  # {前綴和: 索引}
    
    for i, num in enumerate(nums):
        prefix_sum += num
        
        if prefix_sum - target in sum_map:
            start = sum_map[prefix_sum - target] + 1
            return [start, i]
        
        sum_map[prefix_sum] = i
    
    return []

時間複雜度: O(n) 空間複雜度: O(n)

方法二:滑動視窗(僅適用於正數)

def subarraySum_positive(nums, target):
    left = 0
    current_sum = 0
    
    for right in range(len(nums)):
        current_sum += nums[right]
        
        while current_sum > target and left <= right:
            current_sum -= nums[left]
            left += 1
        
        if current_sum == target:
            return [left, right]
    
    return []

💼 oavoservice 助力

演算法選擇 - 根據數據特點選擇最優演算法 程式碼實作 - 清晰的邏輯和註釋 優化討論 - 不同場景的優化策略

聯繫 oavoservice,專業 VO 面試輔助!


標籤: #Amazon #前綴和 #滑動視窗 #子陣列 #VO輔助 #面試輔助 #一畝三分地


需要面試真題? 立刻聯繫微信 Coding0201獲得真題