zoukankan      html  css  js  c++  java
  • 数据结构与算法 (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]]

  • 相关阅读:
    HDU 1813 Escape from Tetris
    BZOJ 2276 Temperature
    BZOJ 4499 线性函数
    BZOJ 3131 淘金
    HDU 5738 Eureka
    POJ 2409 Let it Bead
    POJ 1286 Necklace of Beads
    POJ 1696 Space Ant
    Fox And Jumping
    Recover the String
  • 原文地址:https://www.cnblogs.com/yangjiez/p/12158944.html
Copyright © 2011-2022 走看看