LeetCode 88 合并两个有序数组

该题注意点有:

1、确定是否需要break以及何时break;

break和break one还有return的区别可以参考这篇

break和return-CSDN博客

2、对于m=0的特殊情况需要特殊处理

3、这道题其实是插入排序的方法,当插入中间和尾部其实是不一样的处理,需要分情况

java 复制代码
class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        if(m==0) {
            for(int i=0;i<n;i++) {
                nums1[i] = nums2[i];
            }
        }
        for(int i=0;i<n;i++) {
            for(int j=0;j<m;j++) {
                if(nums2[i]<nums1[j]) {
                    for(int z=m;z>j;z--) {
                        nums1[z] = nums1[z-1];
                    }
                    nums1[j] = nums2[i];
                    m++; 
                    break;
                }
                if(j == m-1) {
                   nums1[j+1] = nums2[i];
                   m++;
                   break;   //注释掉break会导致一直处于i=0的第一层外循环,内循环的m一直在变,
                            //最终超出nums1的长度索引
                }                
            }
        }
    }
}
相关推荐
loveLifeLoveCoding6 分钟前
Java List sort() 排序
java·开发语言
草履虫·12 分钟前
【Java集合】LinkedList
java
AngeliaXue14 分钟前
Java集合(List篇)
java·开发语言·list·集合
世俗ˊ15 分钟前
Java中ArrayList和LinkedList的比较
java·开发语言
zhouyiddd19 分钟前
Maven Helper 插件
java·maven·intellij idea
wx2004110223 分钟前
Codeforces Round 973 (Div. 2) - D题
数据结构·c++·算法
攸攸太上28 分钟前
Docker学习
java·网络·学习·docker·容器
Milo_K36 分钟前
项目文件配置
java·开发语言
程序员大金39 分钟前
基于SpringBoot+Vue+MySQL的养老院管理系统
java·vue.js·spring boot·vscode·后端·mysql·vim
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS网上购物商城(JAVA毕业设计)
java·vue.js·spring boot·后端·开源