Leetcode每日一题 ——283.移动零

2026-04-11 11:440阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

283. 移动零 - 力扣(LeetCode)
思路
用双指针实现,cur指针用来从左到右遍历整个数组,dest指针用来划分区间左侧为非零元素区间,右侧为零元素区间(因为此题的要求是零元素放在数组末尾),两个指针划分出三个区间,最右侧为待处理区间
代码

import java.util.Arrays; class Solution { public void swap(int[] nums,int i,int j){ int temp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } public void moveZeroes(int[] nums) { int cur=0,dest=0; for (int i = 0; i < nums.length; i++) { if(nums[i]==0){ cur++; }else { swap(nums,cur,dest); cur++; dest++; } } } public static void main(String[] args) { int[] nums = {0,1,0,3,12}; Solution solution = new Solution(); solution.moveZeroes(nums); System.out.println(Arrays.toString(nums)); } } 网友解答:


--【壹】--:

283. 移动零 - 力扣(LeetCode)<

阅读全文
问题描述:

283. 移动零 - 力扣(LeetCode)
思路
用双指针实现,cur指针用来从左到右遍历整个数组,dest指针用来划分区间左侧为非零元素区间,右侧为零元素区间(因为此题的要求是零元素放在数组末尾),两个指针划分出三个区间,最右侧为待处理区间
代码

import java.util.Arrays; class Solution { public void swap(int[] nums,int i,int j){ int temp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } public void moveZeroes(int[] nums) { int cur=0,dest=0; for (int i = 0; i < nums.length; i++) { if(nums[i]==0){ cur++; }else { swap(nums,cur,dest); cur++; dest++; } } } public static void main(String[] args) { int[] nums = {0,1,0,3,12}; Solution solution = new Solution(); solution.moveZeroes(nums); System.out.println(Arrays.toString(nums)); } } 网友解答:


--【壹】--:

283. 移动零 - 力扣(LeetCode)<

阅读全文