日常记录 :LeetCode 88题 合并两个有序数组

Java :

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int i = m - 1;
        int j = n - 1 ;
        int p = m + n - 1 ;

        while ( p > -1 ) {
            if( j > -1 && i > -1) {
                nums1[p--] = nums1[i] > nums2[j] ? nums1[i--] : nums2[j--] ;
            } else if (j == -1) {
                nums1[p--] = nums1[i--];
            } else if (i == -1) {
                nums1[p--] = nums2[j--];
            }
        }
    }
}

Go:

func merge(nums1 []int, m int, nums2 []int, n int)  {
    start , end , p := m - 1 ,n - 1 , m + n - 1
	for p > -1 {
		if start > -1 && end > -1 {
			if(nums1[start] > nums2[end]) {
				nums1[p] = nums1[start]
				start --
			} else {
				nums1[p] = nums2[end]
				end --
			}
		}else if start == -1 {
			nums1[p] = nums2[end]
			end --
		} else if end == -1 {
			nums1[p] = nums1[start]
			start --
		}
		p --
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值