LeetCode刷题之面试题64. 求1+2+…+n
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
求1+2+...+n
,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 - 示例:
示例 1 :
输入: n = 3
输出: 6
示例 2 :
输入: n = 9
输出: 45
- 提示:
1 <= n <= 10000
- 代码1:
class Solution:
def sumNums(self, n: int) -> int:
return n and n + self.sumNums(n-1)
# 执行用时 :64 ms, 在所有 Python3 提交中击败了24.03%的用户
# 内存消耗 :21.5 MB, 在所有 Python3 提交中击败了100.00%的用户
- 算法说明:
递归,终止条件设置为n
是否为0. - 代码2:
class Solution:
def sumNums(self, n: int) -> int:
return sum(range(1,n+1))
# 执行用时 :44 ms, 在所有 Python3 提交中击败了77.05%的用户
# 内存消耗 :13.7 MB, 在所有 Python3 提交中击败了100.00%的用户
- 算法说明:
投机,直接用sum
函数求和。