公司营销网站建设,北京招聘网站设计师,个人怎么做贷款网站,网站的图片大小规定移动零 1、题目描述2、解答思路 1、题目描述
给定一个数组 nums#xff0c;编写一个函数将所有 0 移动到数组的末尾#xff0c;同时保持非零元素的相对顺序。
请注意 #xff0c;必须在不复制数组的情况下原地对数组进行操作。 2、解答思路
已知数组后端若干元素为0… 移动零 1、题目描述2、解答思路 1、题目描述
给定一个数组 nums编写一个函数将所有 0 移动到数组的末尾同时保持非零元素的相对顺序。
请注意 必须在不复制数组的情况下原地对数组进行操作。 2、解答思路
已知数组后端若干元素为0因此只需遍历查询到非零元素并依次赋值到数组前端无需交换最后将后端的值均设置为0即可。
class Solution {public void moveZeroes(int[] nums) {// 用于记录非零元素的下标int index 0;for (int i 0; i nums.length; i) {if(nums[i]!0) {// 将非零元素依次赋值给nums[index]因此相对顺序也不会变nums[index] nums[i];}}// 从最后一个非零元素到末尾均赋值为0for (int i index; i nums.length; i) {nums[i] 0;}}
}本题关键点在于下标 i 和 index 的变化i 用于遍历整个数组index 用于存储非零元素。时间复杂度o(n)。主要时间花销是for循环遍历整个数组。