题目
方法一 (遍历)
def solution(n: int, k: int) -> int:
ans = 0
for i in range(1, n + 1):
ans += i * k
return ans
if __name__ == '__main__':
print(solution(n = 3, k = 1) == 6)
print(solution(n = 2, k = 2) == 6)
print(solution(n = 4, k = 3) == 30)
复杂度
- 时间复杂度O(n)
- 空间复杂度O(1)
方法二 (等差数列求和)
上述方法即:
等价于
def solution(n: int, k: int) -> int:
return (n * (n + 1) // 2) * k
if __name__ == '__main__':
print(solution(n = 3, k = 1) == 6)
print(solution(n = 2, k = 2) == 6)
print(solution(n = 4, k = 3) == 30)
复杂度
- 时间复杂度O(1)
- 空间复杂度O(1)