每日一题----第四题

第四题

最近家里有点事更新可能断断续续的,但是过一段时间就会正常更新了。

283. 移动零

给定一个数组 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

这个题在最开始真不会,我看了题解里的演示动画然后思考了一下理解了,但是我是真没想到。

思路:这个题通过设置一个左边界,然后循环判断当前的数值是否是非0如果是的话就将这个数赋值给nums[l]并将l往后移动一位到循环结束,然后再从l开始将后边其余的数字都变成0便可。
动画演示(来源:leetcode)

java 复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        int l=0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]!=0){
                nums[l++]=nums[i];
            }
        }
        for(int i=l;i<nums.length;i++)
            nums[i]=0;
    }
}
相关推荐
fengfuyao98515 分钟前
竞争性自适应重加权算法(CARS)的MATLAB实现
算法
散峰而望17 分钟前
C++数组(二)(算法竞赛)
开发语言·c++·算法·github
leoufung18 分钟前
LeetCode 92 反转链表 II 全流程详解
算法·leetcode·链表
Porunarufu18 分钟前
Java·关于List
java·开发语言
靠沿29 分钟前
Java数据结构初阶——Collection、List的介绍与ArrayList
java·数据结构·list
程序猿小蒜32 分钟前
基于springboot的的学生干部管理系统开发与设计
java·前端·spring boot·后端·spring
wyhwust1 小时前
交换排序法&冒泡排序法& 选择排序法&插入排序的算法步骤
数据结构·算法·排序算法
利刃大大1 小时前
【动态规划:背包问题】完全平方数
c++·算法·动态规划·背包问题·完全背包
q***56381 小时前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
q***51891 小时前
SpringCloud系列教程:微服务的未来(十四)网关登录校验、自定义过滤器GlobalFilter、GatawayFilter
java·spring cloud·微服务