福田网站网页设计,wordpress谷歌加速插件,游戏分销代理平台,网站建设战略二、双指针——5. 移动零 题目描述示例示例1#xff1a;示例2#xff1a; 思路代码 题目描述
给定一个数组 nums#xff0c;编写一个函数将所有 0 移动到数组的末尾#xff0c;同时保持非零元素的相对顺序。
请注意 #xff0c;必须在不复制数组的情况下原地对数组进行操… 二、双指针——5. 移动零 题目描述示例示例1示例2 思路代码 题目描述
给定一个数组 nums编写一个函数将所有 0 移动到数组的末尾同时保持非零元素的相对顺序。
请注意 必须在不复制数组的情况下原地对数组进行操作。
示例
示例1 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例2 输入: nums [0] 输出: [0] 思路
从左到右遍历 nums[i]。
每次遇到 nums[i]不等于0 的情况就把 nums[i] 移动到最左边的空位上也就是交换 nums[i] 和 nums[i0]。交换后把 i0和 i 都加一从而使【[i0 ,i−1] 都是空位】这一性质仍然成立。
代码
class Solution {public void moveZeroes(int[] nums) {int left 0;for (int i 0; i nums.length; i) {if (nums[i] ! 0){int temp nums[i];nums[i] nums[left];nums[left] temp;left;}}}
}