给定两个整数a和b,输出从a到b的所有整数以及这些数的和(含a与b)。
时间: 2024-06-01 20:10:37 浏览: 145
计算两个整数A和B的和。
算法1:
(暴力枚举) $O(n)$
从a到b遍历每一个整数,并累加它们的和。
时间复杂度
显然,该算法的时间复杂度为 $O(n)$。
Python 代码
class Solution:
def printAndSum(self, a: int, b: int) -> List[int]:
res = []
s = 0
for i in range(a, b+1):
res.append(i)
s += i
res.append(s)
return res
算法2:
(数学公式) $O(1)$
根据等差数列求和公式,从a到b的所有整数的和为 $\frac{(a+b) \times (b-a+1)}{2}$。
时间复杂度
该算法只需要进行一次计算,因此时间复杂度为 $O(1)$。
Python 代码
class Solution:
def printAndSum(self, a: int, b: int) -> List[int]:
s = (a+b)*(b-a+1)//2
return list(range(a, b+1)) + [s]
阅读全文