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的长度索引
                }                
            }
        }
    }
}
相关推荐
2501_90656512几秒前
哥德巴赫猜想
算法
ShineWinsu3 分钟前
对于C++中unordered_map的详细介绍
数据结构·c++·算法·面试·stl·哈希表·unordered_map
敲个大西瓜6 分钟前
JAVA 并发编程
java·并发编程
东东最爱敲键盘7 分钟前
day3.c++函数与预处理 string
c++·算法
七夜zippoe12 分钟前
基于 DolphinDB 构建全流程质量追溯体系:从原材料到成品的全链路追踪
大数据·人工智能·算法·全链路·dolphindb·质量追溯
vHelios36 分钟前
【电商项目】商品服务模块的问题解决与代码逻辑思考
java·sql·mybatis
rannn_11141 分钟前
【力扣hot100】238、41、73题解
java·算法·leetcode·开发
QN1幻化引擎1 小时前
认知场的涌现动力学:结构证明、Phi度量与意识签名电池
人工智能·深度学习·神经网络·算法·机器学习·agi
今天的砖头有点烫手啊1 小时前
Spring Boot
java·人工智能
坚持编程的菜鸟10 小时前
模拟实现memmove
c语言·算法·模拟实现memmove