关于力扣算法题一个 case 一直无法通过的问题?
力扣地址 https://leetcode-cn.com/probl...
附上我的代码
var waysToSplit = function(nums) {
var len = nums.length;
if (nums.length < 3) return 0;
var prevSum = [];
for (let i = 0; i < len; i++) {
prevSum[i] = ~~prevSum[i - 1] + nums[i];
}
var firstMax = Math.max(prevSum[len - 1] / 3);//确定第一段的边界值(sum(left)===sum(middle)===sum(right))是边界条件
let result = 0;
for (let i = 0; i < len && prevSum[i] <= firstMax; i++) {
//确定第二段左边界
var l = i + 1;
var r = len - 1;
while (l <= r) {
var mid = (l + r) >> 1;
if (prevSum[mid] - prevSum[i] >= prevSum[i]) {
r = mid - 1;
} else {
l = mid + 1;
}
}
//确定第二段右边界
var ll = i + 1;
var rr = len - 1;
while (ll <= rr) {
var mid = (ll + rr) >> 1;
if (prevSum[len - 1] - prevSum[mid] >= prevSum[mid] - prevSum[i]) {
ll = mid + 1;
} else {
rr = mid - 1;
}
}
result += rr - l + 1;
}
let mod = Math.pow(10, 9) + 7;
return Math.floor(result % mod);
};
其中有个 10000 个 0 的 case 一直过不去
求大佬指教,跪求,已经改了一天了...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论