88. 合并两个有序数组(简单)

在这里插入图片描述
解题思路:
使用 i 遍历nums1,由于两个数组都为有序数组所以可以直接比较第 i 个元素和nums2中的元素,若第i个元素比nums2中第一个元素大的话,则将nums2中的的第一个元素插入到第i个位置,将nums2[0]删除(nums2数组中始终保存着没有插入的元素),若第i个位置小于nums2中的第一个元素则 i+1,继续比较下一个元素与nums2中第0个元素的大小。若到最后i >= len(nums1)则遍历完成后nums2中还有元素,则说明nums2中的元素比nums1中最大的元素都大(两个数组都为有序数组),则直接在后面加入nums2中的元素。最后将nums1中 l(其实 l = m + n) 以后的位置的元素都删除。

def merge(nums1, m, nums2, n):
	i = 0
	l = len(nums1)
	while i < l and len(nums2):
    		if nums1[i] > nums2[0]:
        		nums1.insert(i, nums2[0])
        		del (nums2[0])
    		i += 1
	
	if len(nums2):
    		nums1[l - len(nums2):] = nums2
	del (nums1[l:])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值