题目: 给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。 请注意,必须在不复制数组的情况下原地对数组进行操作。 解题(Java):classSolution{publicvoidmoveZeroes(int〔〕nums){intnnums。length,left0,right0;while(rightn){if(nums〔right〕!0){inttempnums〔left〕;nums〔left〕nums〔right〕;nums〔right〕temp;left;}right;}}} 思路解析: 使用双指针,左右指针都从下标0开始标记,右指针不断向右移动,左指针不动,如果有指针标记的数字是非零数字,则把右指针对应的数字与左指针对应的数字交换,同时左指针向右移动一位,结束条件就是右指针移动到数组最后。 举报