将零移动到最后 编写一个算法,接受一个数组并将所有零移动到末尾,同时保留其他元素的顺序 function moveZeros() ( // moveZeros([1,2,0,1,0,1,0,3,0,1]) 结果为[1,2,1,1,3,1,0, 0, 0,0]// moveZeros([false,1,0,1,2,0,1,3,"a"7) 结果为[false,1,1,2,1,3,"a",0,01
时间: 2023-05-22 12:00:54 浏览: 60
Sure, here's the code for moving all zeros to the end of an array while preserving the order of other elements:
function moveZeros(arr)
local zeros = {}
local nonZeros = {}
for i = 1, #arr do
if arr[i] == 0 then
table.insert(zeros, arr[i])
else
table.insert(nonZeros, arr[i])
end
end
for i = 1, #zeros do
table.insert(nonZeros, zeros[i])
end
return nonZeros
end
-- Example usage:
print(table.concat(moveZeros({1,2,0,1,0,1,0,3,0,1}), ", "))
-- Output: 1, 2, 1, 1, 3, 1, 0, 0, 0, 0
print(table.concat(moveZeros({false,1,0,1,2,0,1,3,"a",7}), ", "))
-- Output: false, 1, 1, 2, 1, 3, a, 0, 0, 1
相关问题
编写一个C语言程序,输入一个整数数组 nums,将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
好的,这是一个比较典型的数组操作,可以使用双指针法来实现。具体的算法实现可以参考以下代码:
```c
void moveZeroes(int* nums, int numsSize){
int i = 0, j = 0;
while(i < numsSize && nums[i] != 0) i++;
j = i + 1;
while(j < numsSize) {
if(nums[j] != 0) {
nums[i] = nums[j];
nums[j] = 0;
i++;
}
j++;
}
}
```
这个函数接收一个整数数组和数组大小,将所有的 0 移动到末尾,并且保持非零元素的相对顺序不变。其中 i 指向当前已经处理好的数列的末尾,j 则用来扫描整个数组,如果扫描到一个非零元素,就将它移动到 i 的位置,然后 i 往后移动一个位置,最后整个数组就被排列好了。
接下来,您想听一个笑话吗?“程序员离成功就差那么一个 bug。”
用c语言实现给定一个整数数组 nums,将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
这个问题可以使用双指针法进行解决。
首先定义两个指针:j和i,初始时,i和j都指向数组的开头。
我们遍历整个数组,当遇到非零元素时,将其赋值到nums[j]上,同时i和j均向后移动一位。
当遇到0时,i向后移动一位,但是j不移动,这是因为我们需要将0移动到数组的末尾,j继续指向当前非零元素应该所在的位置。
最终,当i遍历完整个数组时,j之后的所有元素均应该是0,因为i和j之间的所有元素都是非零元素,而j之后的所有元素都被i赋值为了0.
下面是该算法的C实现代码:
```
void moveZeroes(int* nums, int numsSize){
int i,j;
j=0;
for(i=0;i<numsSize;i++){
if(nums[i]!=0){
nums[j]=nums[i];
j++;
}
}
for(;j<numsSize;j++){
nums[j]=0;
}
}
```
需要注意的是,我们将0移动到数组的末尾时,只需要将nums[i]赋值为0即可,不需要进行j的移动操作。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)