和为S的连续正数序列
2023/2/11小于 1 分钟
和为S的连续正数序列
题目链接
题目描述
刷题思路
代码实现
// 注意是连续递增数列,间距为1 那么可以将序列开始、结束元素看做 a 、 b
// 按照数列求和公式sum=(首项+尾项)* 项数 /2 即可
export function FindContinuousSequence(sum) {
// 按照sum值,先预估大概最多满足条件的序列
// sum=(b+a)(b-a+1)/2
let left = 1
let right = 2
const result = []
while (left < right) {
// 从left....right的序列求和
const tempSum = (right + left) * (right - left + 1)
if (2 * sum === tempSum) {
// 满足条件
let count = left
const tempArr = []
while (count <= right) {
tempArr.push(count)
count++
}
result.push(tempArr)
// 向前寻找
left++
}
else if (2 * sum > tempSum) {
// 右边向右
right++
}
else {
// 左边向右
left++
}
}
return result
}
一些建议
更新日志
2024/7/28 10:06
查看所有更新日志
c0f2d
-于06596
-于9b9e4
-于b0275
-于5f1e1
-于02ab1
-于8de1a
-于d0347
-于74e84
-于ced18
-于a23ce
-于e34c0
-于74aa9
-于3c22c
-于9bbe9
-于e4c74
-于