剑指Offer 64. 求1+2+…+n(Medium)
【题目链接】
题解
- 求 1 + 2 + … + n(逻辑符短路,清晰图解)
思路
代码
class Solution(object):
def sumNums(self, n):
"""
:type n: int
:rtype: int
"""
def recursion(n):
if n == 1:
return 1
else:
return n + recursion(n-1)
return recursion(n)
def sumNums(self, n):
def recursion(n):
if n == 1:
return 1
elif mem_ls[n] != 0:
return mem_ls[n]
else:
mem_ls[n-1] = recursion(n-1)
return n + mem_ls[n-1]
mem_ls = [0] * (n+1)
mem_ls[1] = 1
return recursion(n)
def __init__(self):
self.res = 0
def sumNums(self, n):
n > 1 and self.sumNums(n - 1)
self.res += n
return self.res