• leetcode之Merge Sorted Array


    You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m andn respectively.

    这道题的思路和剑指offer上第2章中关于字符串操作的面试题4替换空格相似。如果从前面开始比较会不断地移动后面的数组元素,因此借助空格替换思想,定义三个指针来移动。

    这道题虽然在leetcode上提交成功,但是仍然不知道自己去怎么测试。比如事先不知道应该给A定义多大的数组。今晚问了问同学,说可以先给A定义一个很长的数组,然后A数组输入的时候用Scanner 依次输入A[i];

    好吧,这个问题先留着,把我的代码放在下面

    public void merge(int A[], int m, int B[], int n) {
            int q = m+n-1;
            int p = m-1;
            int r = n-1;
            
            while(p>=0&&r>=0){
                if(A[p]>=B[r]){
                    A[q] = A[p];
                    q--;
                    p--;
                    }
                else{
                    A[q] = B[r];
                    q--;
                    r--;
                }
            }
            while(p>=0){
                A[q] = A[p];
                q--;
                p--;
            }
            while(q>=0){
                A[q] = B[r];
                q--;
                r--;
            }
            
        }
  • 相关阅读:
    事务(十四)
    事务(十三)
    事务(十二)
    事务(十一)
    事务(十)
    try中定义输入流报错:Try-with-resources are not supported at language level '5'
    IDEA新建时没有java class选项
    Hex编码
    Git Bash安装及常规使用
    PostgreSQL数据库
  • 原文地址:https://www.cnblogs.com/gracyandjohn/p/4382985.html
Copyright © 2020-2023  润新知