题解 | #合并两个有序的数组#
合并两个有序的数组
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
#
#
# @param A int整型一维数组
# @param B int整型一维数组
# @return void
#
class Solution:
def merge(self , A, m, B, n):
# write code here
# A[m:] = B
# A.sort()
# 方法2
m-=1
for i in range(n-1,-1,-1):
while A[m] > B[i] and m >= 0:
A[m+i+1] = A[m]
m = m - 1
A[m+i+1] = B[i]
#bing
# m = m-1
# n = n-1
# while n >= 0:
# if m >= 0 and A[m] > B[n]:
# A[m + n + 1] = A[m]
# m -= 1
# else:
# A[m + n + 1] = B[n]
# n -= 1
这题很简单,直接合并然后sort(bushi
因为A,B本身就有序,所以可以按顺序判断。
A已经扩容,直接在A里面修改即可。
逆序逐一判断B中的元素,如果原本A数组的末尾更大,就末尾就写入A,并且while判断下一个A,直到找到比B末位更小的A,或者A序列耗尽。那么就把B的末尾写入A。
这样,就按顺序把所有B写进A了。
不过要注意range里面是逗号,不是冒号,别matlab上头了。还要注意下标的问题。python和C++都是从0开始。
#日常刷题#
上海得物信息集团有限公司公司福利 1233人发布