题目解析
我的解题思路如下:
定义一个leftSum,用于统计左数组的和,初始为0
定义一个rightSum,用于统计右数组的和,初始为sum(nums)
然后,开始从 i = 0,开始遍历输入的数组nums的每一个元素nums[i],
leftSum += nums[i]
rightSum -= nums[i]
然后计算两个和的差值绝对值diff,比较最大的maxDiff,若大于maxDiff,则maxDiff = diff
之后,在 i++,循环上面逻辑,直到 i = nums.length-2,因为左右数组不能为空,因此右数组至少有一个nums[nums.length-1]元素
上面算法是一个O(n)时间复杂度,对于1 < n ≤ 100000数量级而言,不会超时。
JS算法源码
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
const n = parseInt(await readline());
con
最大差值分割算法

已下架不支持订阅
540





