美文网首页
Day044|Python编程300例之合并两个整数数组并有序输

Day044|Python编程300例之合并两个整数数组并有序输

作者: 龙渊的宝藏 | 来源:发表于2021-04-09 23:08 被阅读0次

今天是Andy学Python的第44 天哦! 

大家好,我是Andy。 

01.

项目需求

# 合并两个升序的整数数组A和B,形成一个新的数组,新数组也要有序。

# 如:输入A = [1],B = [1],输出[1, 1],返回合并后的数组。

# 输入A = [1,2,3,4], B = [2,4,5,6],输出[1, 2, 2, 3, 4, 4, 5, 6],返回合并所有元素后的数组。

02.

任务拆解

2.1 合并两个列表

2.2 升序排列

2.3 输出结果

03.

代码实现

3.1版本1.0

问题:输入的字符串转换成列表,是将第一个字符单独作为元素转换成列表,包括标点。

尝试将数组放在主函数中,不使用input函数。

3.2 版本2.0

代码附下:

# 合并两个整数列表并排序

def sort_a_b(a, b):

    c = a + b

    c.sort()

    return(c)

A = [123, 45, 18]

B = [11, 234, 1]

D = [1,2,3,4]

E = [2,4,5,6]

print("输入:", A, B)

print("输出:", sort_a_b(A,B))

print("输入:", D, E)

print("输出:", sort_a_b(D,E))

04.

书上代码

代码附下:

# 书上代码

class Solution:

    # 参数A:有序整数数组A

    # 参数B:有序整数数组B

    # 返回:一个新的有序整数数组

    def mergeSortedArray(self, A, B):

        i, j = 0, 0

        C = []

        while i < len(A) and j < len(B):

            if A[i] < B[j]:

                C.append(A[i])

                i += 1

            else:

                C.append(B[j])

                j += 1

        while i < len(A):

            C.append(A[i])

            i += 1

        while j < len(B):

            C.append(B[j])

            j += 1

        return C

# 主函数

if __name__ == '__main__':

    A = [1,4]

    B = [1,2,3]

    D = [1,2,3,4]

    E = [2,4,5,6]

    solution = Solution()

    print("输入:", A, "", B)

    print("输出:", solution.mergeSortedArray(A,B))

    print("输入:", D, E)

    print("输出:", solution.mergeSortedArray(D,E))

05.

思考

合并两个列表有两种方法。

方法一:

a = [1,2,3]

b = [2,3,4,5]

c = a + b

方法二:

a = [1,2,3]

b = [2,3,4,5]

d = a

i = 0

while i in range(len(b)):

    d.append(b[i])

    i += 1

print(d)

结果如下:

注意:使用d.append()方法,是将括号的参数作为一个列表元素追加到列表d

51Day Day up!

向上向善,日进一步!

每天学习,努力成长!

定个小目标,开启成长的旅程,遇见更好的自己。

这是我们和自己的约定,许诺自己不负韶华。

路虽远,行则将至;事虽难,做则必成。

成长的最好时机,就是当下。

相关文章

网友评论

      本文标题:Day044|Python编程300例之合并两个整数数组并有序输

      本文链接:https://www.haomeiwen.com/subject/uwfgkltx.html