最近打算学习一下php,看书的空闲做一下leetcode的题,附上php代码
class Solution {
/**
* @param Integer[] $nums
* @return NULL
*/
function moveZeroes(&$nums) {
$j = 0;
for($i=0;$i<count($nums);$i++){
if($nums[$i]!=0){
$nums[$j]=$nums[$i];
$j++;
}
}
for(;$j<count($nums);$j++){
$nums[$j]=0;
}
}
}
首先要明确思路,目的就是将零移动到数组的最后几位,因此只需要将非零的数移动到数组前几项,并统计出数组中出现零的次数,然后补上对应个数的零就可以了。
同时附上java代码
class Solution {
public void moveZeroes(int[] nums) {
int z=0;
for(int i=0;i<nums.length;i++)
{
if(nums[i]==0)
{
z++;
}
else
{
nums[i-z]=nums[i];
}
}
for(int j=nums.length-z;j<nums.length;j++)
{
nums[j]=0;
}
}
}
同样的思路只是改一下代码就好了。