LeetCode283.移动零

这道题还是很简单的,我用的是双指针,左指针i从头开始遍历数组,右指针j是从i后面第一个数开始遍历,当左指针i等于0的时候,右指针j去寻找i右边第一个为0的数和i交换位置,交换完了就break内层循环,i往后移1位,j又从i的下一位开始,如果i不等于0,就不用进内层循环了,直接break内层,i往后移一位,这样数组的顺序没变,并且0全在后面,还是非常简单的,以下是我的代码:

java 复制代码
class Solution {
    public void moveZeroes(int[] nums) {
       int zeroNum=0;
       int n = nums.length;
       for(int i=0;i<n;i++){
           for(int j=i+1;j<n;j++){
               if(nums[i] == 0){
                   while(j<n-1 && nums[j] == 0){
                       j++;
                   }
                   nums[i] = nums[j];
                   nums[j] = 0;
               }break;
           }
          
       }
    }
}
相关推荐
Java知识库26 分钟前
2025秋招后端突围:JVM核心面试题与高频考点深度解析
java·jvm·程序员·java面试·后端开发
南枝异客33 分钟前
四数之和-力扣
java·算法·leetcode
英杰.王38 分钟前
深入 Java 泛型:基础应用与实战技巧
java·windows·python
Leaf吧41 分钟前
java BIO/NIO/AIO
java·开发语言·nio
凌肖战44 分钟前
C语言中提供的第三方库之哈希表实现
算法·哈希算法
lingling0091 小时前
迁移科技:破解纸箱拆垛场景的自动化升级密码
算法
IT_10241 小时前
springboot从零入门之接口测试!
java·开发语言·spring boot·后端·spring·lua
Coding小公仔1 小时前
几种经典排序算法的C++实现
c++·算法·排序算法
湖北二师的咸鱼2 小时前
c#和c++区别
java·c++·c#
weixin_418007602 小时前
软件工程的实践
java