← 返回博客列表
Amazon

Amazon VO:连续子数组求和问题全解析

2025-10-10

Amazon back-to-back 面试中的经典题目。本文通过连续子数组求和问题,展示前缀和与滑动窗口的应用,csvosupport 助你快速掌握核心技巧

📋 题目描述

给定一个整数数组和目标和,找到和等于目标值的连续子数组

*示例

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

🎯 核心考点

  1. *前缀 - 快速计算区间和
  2. *哈希 - O(n) 时间复杂
  3. 滑动窗口 - 正数数组的优
  4. 边界处理 - 多个解的情况

💡 解题思路(csvosupport 指导

方法一:前缀+ 哈希

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 []

💼 csvosupport 助力

算法选择 - 根据数据特点选择最优算 代码实现 - 清晰的逻辑和注 优化讨论 - 不同场景的优化策

联系 csvosupport,专VO 面试辅助


*标签 #Amazon #前缀#滑动窗口 #子数#VO辅助 #面试辅助 #一亩三分地


需要面试真题? 立刻联系微信 Coding0201,获得真题