算法(移动零)

5. 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作?

示例 1:

复制代码
输入: nums = [0,1,0,3,12]

输出: [1,3,12,0,0]

示例 2:

复制代码
输入: nums = [0]

输出: [0]

提示:

  • 1 <= nums.length <= 104
  • -231 <= nums[i] <= 231 - 1
java 复制代码
//双指针法
class Solution {
    public void moveZeroes(int[] nums) {
        //记录非0元素应该放的位置
        int noZeroIndex=0;
        //第一步先把非0的元素放到前面
        for(int i=0; i<nums.length; i++){
            if(nums[i]!=0){
                nums[noZeroIndex]=nums[i];
                noZeroIndex++;
            }
        }
        //第二步把剩下的位置全部补成0
        for(int i=noZeroIndex; i<nums.length;i++){
        nums[i]=0;
    }  
  }
}
相关推荐
fpcc3 分钟前
数据结构和算法—最短路径的算法
数据结构·算法
茉莉玫瑰花茶21 分钟前
RAG 数据检索
人工智能·算法·机器学习
speop39 分钟前
hell-gpu| TASK01-2
linux·运维·算法
Mr. zhihao1 小时前
从数组到 B+ 树:一棵树的进化史
数据结构·innodb·b+树
船厂电气自动化ai大模型1 小时前
AI大模型与数学第64课:矩阵×向量乘法(神经网络矩阵运算底层)
数据结构·深度学习·线性代数·机器学习·推荐算法
Navigator_Z1 小时前
LeetCode //C - 1223. Dice Roll Simulation
c语言·算法·leetcode
171320330计算机毕设编程1 小时前
2027计算机毕设五大方向对比&选题推荐
java·ide·python·算法·django·php·推荐算法
Tisfy1 小时前
LeetCode 2058.找出临界点之间的最小和最大距离:遍历+遇到极值则更新(这种题谁空间复杂度不是O(1)啊)
linux·数据库·leetcode·链表·题解·模拟·遍历
万物智能2 小时前
设备树DTS-【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
后端·算法
代码不停2 小时前
子数组问题
java·算法