数据结构与算法 (01)数组
# 作业1 """ 1. 利用动态数组解决数据存放问题 编写一段代码,要求输入一个整数N,用动态数组A来存放2~N之间所有5或7的倍数,输出该数组。 示例: 输入: N = 100 输出: 5 7 10 14 15 20 21 25 28 30 35 40 42 45 49 50 55 56 60 63 65 70 75 77 80 84 85 90 91 95 98 100 """ def getnumber(N): a = [] for i in range(1,N+1): if i % 5 == 0 or i % 7 == 0: a.append(i) return a N = 100 print(getnumber(N))
输出:[5, 7, 10, 14, 15, 20, 21, 25, 28, 30, 35, 40, 42, 45, 49, 50, 55, 56, 60, 63, 65, 70, 75, 77, 80, 84, 85, 90, 91, 95, 98, 100]
# 作业2 """ 2. 托普利茨矩阵问题 如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵。 给定一个M x N的矩阵,当且仅当它是托普利茨矩阵时返回True。 示例: 输入: matrix = [ [1,2,3,4], [5,1,2,3], [9,5,1,2] ] 输出: True """ def tupl(matrix): for i in range(len(matrix)-1): for j in range(len(matrix[0])-1): if matrix[i][j] != matrix[i+1][j+1]: return False return True matrix = [ [1,2,3,4], [5,1,2,3], [9,5,1,2] ] print(tupl(matrix))
True
# 作业3 def threesum(nums): result = [] # 结果 nums.sort() # 排序 if len(nums)<3: return [] for i in range(len(nums)): if nums[i]>0: break # 排序后第一个结果大于0,不可能有三个数之和为0 elif i>0 and nums[i] == nums[i-1]: continue L = i+1 r = len(nums)-1 while L <r: if nums[i] + nums[L] + nums[r] == 0: result.append([nums[i],nums[L],nums[r]]) L+=1 r-=1 elif nums[i] + nums[L] + nums[r] != 0: L+=1 r-=1 return result nums = [-1, 0, 1, 2, -1, -4] print(threesum(nums))
已完成
执行用时: 20 ms
输入
[-1,0,1,2,-1,-4]
输出
[[-1,-1,2],[-1,0,1]]
预期结果
[[-1,-1,2],[-1,0,1]]
相关推荐
mingyunxiaohai 2020-07-28
LauraRan 2020-09-28
范范 2020-07-30
mingyunxiaohai 2020-07-19
koushr 2020-11-12
zhangxiafll 2020-11-13
kikaylee 2020-10-31
范范 2020-10-28
MILemon 2020-10-22
hugebawu 2020-10-12
shenwenjie 2020-09-24
omyrobin 2020-09-23
guangcheng 2020-09-22
qiangde 2020-09-13
hanyujianke 2020-08-18
晨曦之星 2020-08-14
xiesheng 2020-08-06
KAIrving 2020-08-02