LeetCode 剑指 Offer 64. 求1+2+…+n

题目描述

剑指 Offer 64. 求1+2+…+n

image-20241107212526971

思路分析

解法一:递归 + 短路(推荐)

核心思路

  • 利用递归计算 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. 摆动排序 中等 数学、数组
本文作者:
本文链接: https://hgnulb.github.io/blog/2021/79773922
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!