iT邦幫忙

2025 iThome 鐵人賽

DAY 4
0

Move Zeroes (LeetCode 283, Two Pointers)

解題思路

  • 使用 快慢指針:
    • slow:下一個非零要放的位置
    • fast:遍歷陣列
  • 把非零元素搬到前面,最後補零

Kotlin 解法

class Solution {
    fun moveZeroes(nums: IntArray) {
        var slow = 0
        for (fast in nums.indices) {
            if (nums[fast] != 0) {
                nums[slow] = nums[fast]
                if (slow != fast) nums[fast] = 0
                slow++
            }
        }
    }
}

Follow-up

  • 如果要保持非零元素的相對順序?(已處理)
  • 如果不允許修改原陣列,要怎麼做?
  • 如果是串流資料,怎麼在一次遍歷內處理?

上一篇
#12
下一篇
#14
系列文
來都來了-涮就涮吧16
  1. 12
    #11
  2. 13
    #12
  3. 14
    #13
  4. 15
    #14
  5. 16
    #15
完整目錄
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言