【LeetCode每日一题】——283.移动零
创始人
2025-05-29 07:12:19
0

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【解题思路】
  • 七【题目提示】
  • 八【题目进阶】
  • 九【时间频度】
  • 十【代码实现】
  • 十一【提交结果】

一【题目类别】

  • 双指针

二【题目难度】

  • 简单

三【题目编号】

  • 283.移动零

四【题目描述】

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

五【题目示例】

  • 示例 1:

    • 输入: nums = [0,1,0,3,12]
    • 输出: [1,3,12,0,0]
  • 示例 2:

    • 输入: nums = [0]
    • 输出: [0]

六【解题思路】

  • 题目要把值为零的元素放到数组的后面,我们可以换个思路:将不为零的元素按照相对顺序放到数组的前面
  • 基于以上思路,我们可以定义两个指针,分别是i和j:
    • i指针:用来寻找数组中不为零的值
    • j指针:指向数组中第一个为零的位置
  • 遍历整个数组,如果i指针遇到了不为零的值,就和j指针进行交换,因为j指针一直指向数组中第一个为零的位置,所以直接交换就将数组中的不为零的元素按照相对顺序放到了数组的前面
  • 交换之后,j指针向后移动一个位置,指向下一个为零的位置,准备进行下一次交换
  • i指针继续搜索不为零的值
  • 本题不需要返回值

七【题目提示】

  • 1<=nums.length<=1041 <= nums.length <= 10^{4}1<=nums.length<=104
  • −231<=nums[i]<=231−1-2^{31} <= nums[i] <= 2^{31} - 1−231<=nums[i]<=231−1

八【题目进阶】

  • 你能尽量减少完成的操作次数吗?

九【时间频度】

  • 时间复杂度:O(n)O(n)O(n),其中nnn为传入的数组的长度
  • 空间复杂度:O(1)O(1)O(1)

十【代码实现】

  1. Java语言版
class Solution {public void moveZeroes(int[] nums) {for(int i = 0,j=0;iif(nums[i] != 0){int temp = nums[i];nums[i] = nums[j];nums[j++] = temp;}}}
}
  1. C语言版
void moveZeroes(int* nums, int numsSize)
{for(int i = 0,j=0;iif(nums[i] != 0){int temp = nums[i];nums[i] = nums[j];nums[j++] = temp;}}
}
  1. Python语言版
class Solution:def moveZeroes(self, nums: List[int]) -> None:j = 0for i in range(0,len(nums)):if nums[i] != 0:temp = nums[i]nums[i] = nums[j]nums[j] = tempj += 1
  1. C++语言版
class Solution {
public:void moveZeroes(vector& nums) {for(int i = 0,j=0;iif(nums[i] != 0){int temp = nums[i];nums[i] = nums[j];nums[j++] = temp;}}}
};

十一【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

  4. C++语言版
    在这里插入图片描述

相关内容

热门资讯

C指针:程序员的望远镜 C指针:程序员的望远镜一、什么是指针1.1 指针的定义1.2 指针和普通变量的区别1....
牛客网Java面试题及答案整理... 学习如逆水行舟,尤其是 IT 行业有着日新月异的节奏,我们更要抓紧每一次...
江西宜春智慧停车欠费清缴享7折... 极目新闻记者 杜光然 近日,江西网友发视频称,宜春智慧停车公司开启了端午缴费特惠活动,车主享停车费7...
律数科技申请基于区块链的小额金... 金融界2025年5月31日消息,国家知识产权局信息显示,北京律数科技有限公司申请一项名为“一种基于区...
好用的5款国产低代码平台介绍 一、云程低代码平台 云程低代码平台是一款基于springboot、vue.js技术的企业级低代码...
【数据结构第三章】- 队列 目录 一、队列的定义和特点 二、循环队列 2.1 - CircularQueue.h 2.2 - C...
如何将pdf文件压缩?pdf压... PDF是一种常见的文档格式,因为包括文本格式和图像,我们往往采用这种格式...
0X30数学知识 - 质数 定义: 若一个正整数无法被除了1和它自身之外的任何自然数整除,则称该数...
中方代表:俄乌冲突战场上武器数... 当地时间5月30日,中国常驻联合国副代表耿爽在安理会审议向乌克兰提供武器问题时发言指出,战场上武器数...
法网|冲击八强!女单第四轮,郑... 齐鲁晚报·齐鲁壹点 怀晓 郑钦文将向八强席位发起冲击。新华社发 连下3场击败帕芙柳琴科娃、阿朗戈和...