zoukankan      html  css  js  c++  java
  • LeetCode(40)-Merge Sorted Array

    听到初爱有感

    开头啰嗦两句。刚在做算法题目的时候。听到了杨宗纬的《初爱》,突然有了一种本科时候的感觉,想想自己如今研二了,青春喂了狗,我果断喝了一罐啤酒,循环这首歌到吐…..

    题目:

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
    
    Note:
    You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.

    思路:

    • 题意是如果数组nums1里面m个元素,nums2有n个元素,nums1的大小是m+n,两个数组都是有序的,要求把nums2。放到nums1里面
    • 充分利用两个数组都是有序的这个条件,不断推断nums1和nums2和最后一个元素,谁大,就把它拷贝到nums1的最后一个,同一时候对应的指针减一
    • -

    代码:

    public class Solution {
        public void merge(int[] nums1, int m, int[] nums2, int n) {
            if(n == 0)return;
            int all = m+n-1;
            m--;
            n--;
            while(m >=0 && n >=0){
                nums1[all--] = nums1[m] > nums2[n] ? nums1[m--]:nums2[n--];
            }
            while(n >= 0){
                nums1[all--] = nums2[n--];
            }
        }
    }
  • 相关阅读:
    iOS No such file or directory
    获取图片某点或区域的颜色
    GCD 异步分组执行
    FMDB
    键盘样式风格有关设置
    libc++abi.dylib handler threw exception
    苹果Xcode帮助文档阅读指南2
    面试集锦-常量,const, const 对指针的影响
    支付宝遇到的坑和解决方案
    闲谈
  • 原文地址:https://www.cnblogs.com/llguanli/p/8947425.html
Copyright © 2011-2022 走看看