2270. 分割数组的方案数
题目
思路
2 <= nums.length <= 10^5,因此我们可以直接获取第一个数字,初始状态指针位于 index 0,正要往 index 1 走的时候。然后只需要一次 for 循环就可以搞定。
重点是第二个方法,来自题解。
代码
class Solution:
def waysToSplitArray(self, nums: List[int]) -> int:
temp_sum = nums[0]
total_sum = sum(nums) - temp_sum
ans = 0
for i in range(1, len(nums)):
if temp_sum >= total_sum:
ans += 1
temp_sum += nums[i]
total_sum -= nums[i]
return anst = (sum(nums) + 1) // 2
return sum(s >= t for s in accumulate(nums[:-1]))贡献者
这篇文章有帮助吗?
最近更新
Involution Hell© 2026 byCommunityunderCC BY-NC-SA 4.0
2241. 设计 ATM 机器
LeetCode 2241. 设计 ATM 机器 题解 — 使用贪心算法模拟 ATM 取款与存款逻辑,核心技巧是反向遍历面额数组(500→20)并利用哈希表或数组记录各面额钞票数量,优先使用大面额钞票。适合准备系统设计面试或刷 LeetCode 中等模拟题的 CS/AI 求职者。
One question daily 2293. Great mini game
LeetCode 2293. 极大极小游戏 题解 — 通过递归思想将一维数组不断转化为二维数组操作,避免索引变化混乱;利用 flag 计数交替取最大值与最小值,适合正在刷简单题、巩固递归与数组处理技巧的算法初学者。