数据结构与算法第一天

*爱你&永不变心* 提交于 2020-01-26 04:22:30

Task01:数组(1天)
理论部分:
理解数组的存储与分类。
实现动态数组,该数组能够根据需要修改数组的长度。
练习部分

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

def findn(n):
    A = []
    for i in range(2,n+1):
        if i%5==0 or i%7==0:
            A.append(i)
    print(A)
findN(100)
print('totally cost')
  1. 托普利茨矩阵问题
    如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵。
    给定一个M x N的矩阵,当且仅当它是托普利茨矩阵时返回True。
class Solution:
    def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool:
        for j in range(len(matrix[0])-1):
            for i in range(len(matrix)-1):
                if matrix[i][j] != matrix[i+1][j+1]:
                    return False
        else:
            return True

  1. 三数之和
    https://leetcode-cn.com/problems/3sum/
    给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素a,b,c,
    使得a + b + c = 0?找出所有满足条件且不重复的三元组。
class Solution:
    def threeSum(self, nums):
  
        result = []
        for i, a in enumerate(nums):
            for j, b in enumerate(nums[i + 1:]):
                for _, c in enumerate(nums[j + i + 2:]):
                    if a + b + c == 0:
                        result.append([a, b, c])
        return result

































易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!