LeetCode 0283.移动零【Go】

简介: LeetCode 0283.移动零【Go】

移动零

LeetCode283. 移动零

题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]
输出: [0]

思路

题目描述

  • 将数组中的所有0移动到数组末尾

移除数组元素,考虑使用双指针法。慢指针的移动条件应为nums[fastIndex] != 0

注意

由于是将0移到数组末尾,并非是完全移除,所有当快指针找到不为0的数时,慢指针和快指针的值应该交换

代码

Go

func moveZeroes(nums []int) {
  slowIndex := 0
  for fastIndex := 0; fastIndex < len(nums); fastIndex++ {
    if nums[fastIndex] != 0 {
      nums[slowIndex], nums[fastIndex] = nums[fastIndex], nums[slowIndex]
      slowIndex += 1
    }
  }
}

Link

GitHub

目录
相关文章
|
6月前
|
SQL 算法 数据挖掘
LeetCode 第四题:寻找两个正序数组的中位数 【4/1000 】【python + go】
LeetCode 第四题:寻找两个正序数组的中位数 【4/1000 】【python + go】
|
6月前
|
算法 Java Go
【经典算法】LeetCode 392 判断子序列(Java/C/Python3/Go实现含注释说明,Easy)
【经典算法】LeetCode 392 判断子序列(Java/C/Python3/Go实现含注释说明,Easy)
72 0
|
6月前
|
存储 算法 Java
【经典算法】LeetCode112. 路径总和(Java/C/Python3/Go实现含注释说明,Easy)
【经典算法】LeetCode112. 路径总和(Java/C/Python3/Go实现含注释说明,Easy)
37 0
|
6月前
|
算法 Java Go
【经典算法】LeetCode 100. 相同的树(Java/C/Python3/Go实现含注释说明,Easy)
【经典算法】LeetCode 100. 相同的树(Java/C/Python3/Go实现含注释说明,Easy)
49 0
|
6月前
|
算法 Java Go
【经典算法】LeetCode 58.最后一个单词的长度(Java/C/Python3/Go实现含注释说明,Easy)
【经典算法】LeetCode 58.最后一个单词的长度(Java/C/Python3/Go实现含注释说明,Easy)
39 0
|
6月前
|
算法 Java 大数据
【经典算法】LeetCode 283. 移动零(Java/C/Python3/Go实现含注释说明,Easy)
【经典算法】LeetCode 283. 移动零(Java/C/Python3/Go实现含注释说明,Easy)
44 0
|
6月前
|
算法 Java Go
【经典算法】LeetCode 2两数相加(Java/C/Python3/Go实现含注释说明,中等)
【经典算法】LeetCode 2两数相加(Java/C/Python3/Go实现含注释说明,中等)
33 0
|
6月前
|
算法 Java Go
【经典算法】LeetCode 2739. 总行驶距离(Java/C/Python3/Go实现含注释说明,Easy)
【经典算法】LeetCode 2739. 总行驶距离(Java/C/Python3/Go实现含注释说明,Easy)
46 0
|
7月前
|
Go
[leetcode ~go]三数之和 M
[leetcode ~go]三数之和 M
YI
|
Go
LeetCode 0019.删除链表的倒数第N个节点【Go】
LeetCode 0019.删除链表的倒数第N个节点【Go】
YI
48 0