2020-01-06

DW数据结构与算法学习任务----Task01:数
Task01:数组(1天)
目录
Task01:数组(1天)
练习部分
1.利用动态数组解决数据存放问题
2.托普利茨矩阵问题
3.三数之和
实现动态数组,该数组能够根据需要修改数组的长度

练习部分
1.利用动态数组解决数据存放问题
编写一段代码,要求输入一个整数N,用动态数组A来存放2~N之间所有5或7的倍数,输出该数组。

array = []
N = eval(input(‘请输入一个整数:’))
for i in range(N):
if (i + 1) % 5 == 0 or (i + 1) % 7 == 0:
array.append(i + 1)
print(array)

2.托普利茨矩阵问题
如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵。

input

mat = []
n = 0
x = eval(input(‘请输入矩阵行数’))
for i in range(x):
mat.append([])
mat[i] = input().split(’ ')

judge

for i in range(x - 1):
for j in range(len(mat[1]) - 1):
if mat[i][j] != mat[i + 1][j + 1]:
n = 1

print

if n == 1:
print(‘mat不是托普利茨矩阵’)
if n == 0:
print(‘mat是托普利茨矩阵’)

给定一个M x N的矩阵,当且仅当它是托普利茨矩阵时返回True。

3.三数之和
给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得a + b + c = 0?找出所有满足条件且不重复的三元组。
答案中不可以包含重复的三元组。

nums = [-1, 0, 1, 2, -1, -4]
n = len(nums)
nums = sorted(nums)
array = []
for i in range(n):
if nums[i] > 0:
a = i
break
for i in range(a):
for j in range(i + 1, n - 1):
for l in range(a, n):
if nums[i] + nums[j] + nums[l] == 0:
xyz = sorted([nums[i], nums[j], nums[l]])
if xyz not in array:
array.append(xyz)
print(array)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值