Day044|Python编程300例之合并两个整数数组并有序输
今天是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!
向上向善,日进一步!
每天学习,努力成长!
定个小目标,开启成长的旅程,遇见更好的自己。
这是我们和自己的约定,许诺自己不负韶华。
路虽远,行则将至;事虽难,做则必成。
成长的最好时机,就是当下。