LC525
连续数组
前缀和 · 连续数组可视化:前缀和/积nums 含 0/1,最长连续子数组 0/1 个数相等。
时间 O(n)空间 O(1)
题目1 / 9
题目与输入建立输入、目标与算法心智
区间和 = prefix[right+1] - prefix[left]
正在加载算法场景...
当前发生了什么
nums 含 0/1,最长连续子数组 0/1 个数相等。
机器状态
prefix diff、map 最早下标。
为什么正确
前缀和 count0-count1;map 最早出现某和→最长。
不变量
diff 相同则中间段 0/1 平衡。
面试怎么说
前缀和+哈希 O(n)。
人类输入
nums 含 0/1,最长连续子数组 0/1 个数相等。
机制
前缀和 count0-count1;map 最早出现某和→最长。
机器状态
prefix diff、map 最早下标。
可观察结果
最长长度 6(0..5)。
不变量
- · diff 相同则中间段 0/1 平衡。
常见误区
- · 把 0 变 -1 可化成和为 0 最长。
迁移练习
- · LC560 和为 K
- · LC974 整除 K
面试怎么答
前缀和+哈希 O(n)。