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;
           }
          
       }
    }
}
相关推荐
weixin_462428478 分钟前
使用 Caffeine 缓存并在业务方法上通过注解实现每3到5秒更新缓存
java·缓存
程序媛小果10 分钟前
基于java+SpringBoot+Vue的桂林旅游景点导游平台设计与实现
java·vue.js·spring boot
骑鱼过海的猫12311 分钟前
【java】java通过s3访问ceph报错
java·ceph·iphone
杨充17 分钟前
13.观察者模式设计思想
java·redis·观察者模式
Lizhihao_20 分钟前
JAVA-队列
java·开发语言
算法歌者22 分钟前
[算法]入门1.矩阵转置
算法
喵叔哟29 分钟前
重构代码之移动字段
java·数据库·重构
喵叔哟29 分钟前
重构代码之取消临时字段
java·前端·重构
fa_lsyk32 分钟前
maven环境搭建
java·maven
林开落L37 分钟前
前缀和算法习题篇(上)
c++·算法·leetcode