LeetCode 剑指 Offer 64. 求1+2+…+n
题目描述

思路分析
解法一:递归 + 短路(推荐)
核心思路:
- 利用递归计算
1 + ... + n。- 使用逻辑与短路终止递归,避免显式判断。
- 不使用循环或条件语句。
复杂度分析:
- 时间复杂度:O(n),其中 n 表示输入值。
- 空间复杂度:O(n),递归栈空间。
class Solution {
public int sumNums(int n) {
int sum = n;
// 利用短路终止递归
boolean unused = n > 0 && (sum += sumNums(n - 1)) > 0;
return sum;
}
}
func sumNums(n int) int {
sum := n
// 利用短路终止递归
_ = n > 0 && func() bool {
sum += sumNums(n - 1)
return true
}()
return sum
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 剑指 Offer 64. 求1+2+…+n | 中等 | 递归、短路 |
| 258. 各位相加 | 简单 | 数学 |
| 371. 两整数之和 | 中等 | 位运算 |
| 7. 整数反转 | 中等 | 数学 |
| 280. 摆动排序 | 中等 | 数学、数组 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!