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的长度索引
                }                
            }
        }
    }
}
相关推荐
道可到40 分钟前
Java 反射现代实践速查表(JDK 11+/17+)
java
Fanxt_Ja1 小时前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下1 小时前
最终的信号类
开发语言·c++·算法
道可到1 小时前
Java 反射现代实践指南(JDK 11+ / 17+ 适用)
java
茉莉玫瑰花茶1 小时前
算法 --- 字符串
算法
玉衡子1 小时前
九、MySQL配置参数优化总结
java·mysql
叽哥1 小时前
Kotlin学习第 8 课:Kotlin 进阶特性:简化代码与提升效率
android·java·kotlin
麦兜*1 小时前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
带刺的坐椅1 小时前
DamiBus v1.1.0 发布(给单体多模块解耦)
java·事件总线·damibus
葡萄城技术团队1 小时前
用 Java 构建健壮 REST API 的 4 个关键技巧
java