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;
           }
          
       }
    }
}
相关推荐
叩码以求索9 分钟前
浅谈:前序遍历反转法求解N叉树的后序遍历
算法
xier_ran15 分钟前
【infra之路】GPU 存储层次总结:L1 / L2 / HBM
java·网络·数据库
wuminyu40 分钟前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
SWAGGY..1 小时前
【C++进阶】:(1)继承机制详解
java·jvm·c++
北风toto1 小时前
中缀、前缀、后缀表达式
算法·软件设计师
听取WA声一片(无恶意)1 小时前
CSP-J/CSP-S 深度优先搜索(DFS)完全讲义
c++·算法·深度优先
码匠许师傅1 小时前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试
码流怪侠2 小时前
2026年8月GitHub热榜深度拆解:Agent Skills席卷开源圈,一个“技能包“收割5万星
算法·程序员·github
hold?fish:palm2 小时前
30 两两交换链表中的节点
数据结构·算法·链表
Nil2082 小时前
leetcode 98验证二叉搜索树
算法·leetcode·职场和发展