算法Day02–1120、1121刷题:数组–59. 螺旋矩阵 II,58.区间和(卡码网),44. 开发商购买土地(卡码网)
| 题目 | 用时 |
|---|---|
| 59. 螺旋矩阵 II | 30min |
| 58.区间和(卡码网) | 20min |
| 44. 开发商购买土地(卡码网) | 没写完 |
59. 螺旋矩阵 II
[!NOTE]
给你一个正整数
n,生成一个包含1到n^2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。
class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
up, down = 0, n-1
left, right = 0, n-1
a, b = 0, 0
matrix = [[0 for i in range(n)] for j in range(n)]
i = 0
while left <= right and up <= down:
if a == up:
up += 1
for b in range(left, right+1):
matrix[a][b] = i+1
i += 1
continue
elif b == right:
right -= 1
for a in range(up, down+1):
matrix[a][b] = i+1
i += 1
continue
elif b == left:
left += 1
for a in range(down, up-1, -1):
matrix[a][b] = i+1
i += 1
continue
elif a == down:
down -= 1
for b in range(right, left-1, -1):
matrix[a][b] = i+1
i += 1
continue
return matrix
58.区间和(卡码网)
[!NOTE]
题目描述:给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。
输入描述:第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间下标:a,b (b > = a),直至文件结束。
输出描述:输出每个指定区间内元素的总和。
import sys
input = sys.stdin.read
def main():
data = input().split()
index = 0
n = int(data[index])
index += 1
vec = []
for i in range(n):
vec.append(int(data[index + i]))
index += n
p = [0] * n
presum = 0
for i in range(n):
presum += vec[i]
p[i] = presum
results = []
while index < len(data):
a = int(data[index])
b = int(data[index + 1])
index += 2
if a == 0:
sum_value = p[b]
else:
sum_value = p[b] - p[a - 1]
results.append(sum_value)
for result in results:
print(result)
if __name__ == "__main__":
main()
,44. 开发商购买土地(卡码网)&spm=1001.2101.3001.5002&articleId=155195839&d=1&t=3&u=bc6457689796461ba6b78a6e39d30552)
125

被折叠的 条评论
为什么被折叠?



