
g0201_0300.s0283_move_zeroes.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0201_0300.s0283_move_zeroes;
// #Easy #Top_100_Liked_Questions #Top_Interview_Questions #Array #Two_Pointers
// #Algorithm_I_Day_3_Two_Pointers #Programming_Skills_I_Day_6_Array #Udemy_Arrays
// #Big_O_Time_O(n)_Space_O(1) #2022_07_06_Time_2_ms_(79.54%)_Space_55.7_MB_(5.98%)
/**
* 283 - Move Zeroes\.
*
* Easy
*
* Given an integer array `nums`, move all `0`'s to the end of it while maintaining the relative order of the non-zero elements.
*
* **Note** that you must do this in-place without making a copy of the array.
*
* **Example 1:**
*
* **Input:** nums = [0,1,0,3,12]
*
* **Output:** [1,3,12,0,0]
*
* **Example 2:**
*
* **Input:** nums = [0]
*
* **Output:** [0]
*
* **Constraints:**
*
* * 1 <= nums.length <= 104
* * -231 <= nums[i] <= 231 - 1
*
* **Follow up:** Could you minimize the total number of operations done?
**/
public class Solution {
public void moveZeroes(int[] nums) {
int firstZero = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] != 0) {
swap(firstZero, i, nums);
firstZero++;
}
}
}
private void swap(int index1, int index2, int[] numbers) {
int val2 = numbers[index2];
numbers[index2] = numbers[index1];
numbers[index1] = val2;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy