题解 | #合并两个有序的数组#

合并两个有序的数组

http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

/**
 1.正常思路: 
 合并两个数组的正常操作 是:新建一个能容纳 这两个数组的 新数组
 再依次遍历 两个数组,当前最小值 是谁 就取谁
 再移动指针 再比较,直到一个数组取完后,把剩下的数组拼接到已有数组;
 
 2.此题中明确要求 不返回新数组,数据合并到数组A[]中,
 又 A的空间足够大,所以合并过程只能放在A中进行,
 显然比较后的数组放到A数组末尾 才合理
 于是:有每次比较AB数组最大数,取最大数放置于A数组末尾
 一个数组取完后,剩下数组依次复制到 A数组中
 若两个数组处理完之后,A数组还有剩余空间未被填充,则移动数据是的靠前
*/
public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int ia = m - 1;
        int ib = n - 1;
        int aLastIdx = A.length - 1;
        // 依次处理 直到一个数组耗尽
        while (ia >= 0 && ib >= 0) {
            if( A[ia] >= B[ib] ) {
                A[aLastIdx--] = A[ia--];
            } else {
                A[aLastIdx--] = B[ib--];
            }
        }
        // A数组 未耗尽
        while( ia >= 0 ) {
            A[aLastIdx--] = A[ia--];
        }
        // B数组 未耗尽
        while( ib >= 0 ) {
            A[aLastIdx--] = B[ib--];
        }
        // 至此 AB数组 均耗尽,判断新数组A,前方是否有剩余空间
        // 若AB刚好填充完 新数组A,那么,此时aLastIdx 值 为 -1
        // 若有空缺则 aLastIdx >= 0
        // 把最后减掉的索引加回来,则 
        // 若AB刚好填充完 新数组A,那么,此时aLastIdx 值 为 0
        // 若有空缺则 aLastIdx > 0
        aLastIdx = aLastIdx + 1;
        if( aLastIdx > 0 ) {
            // 数组前移动, 原有位置 重置为 0
            for (int aFrontIdx = aLastIdx; aFrontIdx < A.length; aFrontIdx++ ) {
                A[aFrontIdx - aLastIdx] = A[aFrontIdx];
                A[aFrontIdx] = 0;
            }
        }
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务