📊 普通数组

数组基础操作与区间处理,涵盖前缀积、区间合并、原地修改等常见技巧。

5 题  ·  中等 ×4  困难 ×1

# 题目 难度
53 最大子数组和 中等
56 合并区间 中等
189 轮转数组 中等
238 除自身以外数组的乘积 中等
41 缺失的第一个正数 困难

核心思路

  • 最大子数组和:Kadane 算法,dp[i] = max(nums[i], dp[i-1] + nums[i]),维护当前最大值。
  • 合并区间:按区间起点排序后线性扫描,当前区间与上一个区间有重叠则合并(取右端点较大值)。
  • 轮转数组:三次翻转法:整体翻转 → 前 k 个翻转 → 后 n-k 个翻转,O(1) 空间。
  • 除自身以外数组的乘积:先从左到右计算前缀积,再从右到左累乘后缀积,不使用除法,O(1) 空间。
  • 缺失的第一个正数:利用数组本身作哈希表,将每个正整数 x(1≤x≤n)放到 nums[x-1] 位置,再扫描找第一个不在位的下标。