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;
           }
          
       }
    }
}
相关推荐
Godspeed Zhao1 分钟前
现代智能雷达技术19——算法(5)
算法
(Charon)3 分钟前
【C++面试】RAII到底是什么:从资源管理理解C++对象生命周期
c++·算法·面试
Omics Pro11 分钟前
之江实验室NAR|虚拟细胞3阶段训练范式
数据库·人工智能·算法·机器学习·自然语言处理
通信瓦工12 分钟前
OCP 冷却环境与冷却剂分配单元(CDU)子项目
java·开发语言
Tisfy17 分钟前
LeetCode 0678.有效的括号字符串:O(n)+O(1)一次遍历
算法·leetcode·字符串·题解·贪心·括号匹配
小O的算法实验室21 分钟前
IEEE TEVC,学习辅助的搜索路径重构进化算法
学习·算法·重构
Liuchang091125 分钟前
洛谷 P2670 [NOIP 2015 普及组] 扫雷游戏
c++·算法·游戏
言乐637 分钟前
Python体现逻辑回归和决策树的区别
开发语言·python·算法·决策树·逻辑回归
HugoStudio_SWAN1 小时前
洛谷 B4575 [GESP202609 二级] 直角三角形——临场定义理解与边界质疑
c++·学习·程序人生·算法
红豆诗人1 小时前
C++二叉搜索树:查找、插入和删除为什么这样写
数据结构·c++·算法