将所有零移动到数组末尾的 Javascript 程序 | Set-2(使用单次遍历)
给定一个包含n 个数字的数组。问题是将所有 0 移动到数组的末尾,同时保持其他元素的顺序。只需要对数组进行一次遍历。
例子:
Input : arr[] = {1, 2, 0, 0, 0, 3, 6}
Output : 1 2 3 6 0 0 0
Input: arr[] = {0, 1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0, 9}
Output: 1 9 8 4 2 7 6 9 0 0 0 0 0
算法:
moveZerosToEnd(arr, n)
Initialize count = 0
for i = 0 to n-1
if (arr[i] != 0) then
swap(arr[count++], arr[i])
Javascript
输出:
Original array: 0 1 9 8 4 0 0 2 7 0 6 0 9
Modified array: 1 9 8 4 2 7 6 9 0 0 0 0 0
时间复杂度:O(n)。
辅助空间:O(1)。
请参阅有关将所有零移到数组末尾的完整文章 | Set-2(使用单次遍历)了解更多详情!