精華區beta Marginalman 關於我們 聯絡資訊
283. Move Zeroes 題目: 給你一個陣列 把0全部移動到最後面 思路: 最簡單思路就是粗暴地從左掃到右 用兩個指標 write read 非 0 就 nums[write] = nums[read]; write += 1; 最後還要補 0 但題目有個要求是最小化操作 那要改用swap 也很好改 對非 0 成員多一個判斷 if write != read 之後 nums.swap(read, write); 這方法不只簡單操作還不用補 0 很棒 Code: impl Solution { pub fn move_zeroes(nums: &mut Vec<i32>) { let mut write = 0; for read in 0..nums.len() { if nums[read] != 0 { if write != read { nums.swap(read, write); } write += 1; } } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.143.163 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1749452934.A.853.html
Wardyal: 這是啥語言 06/09 15:16
JIWP: 這題不就跟排序很像 06/09 15:24
yam276: 差不多 06/09 15:28
Firstshadow: 看這沙雕語法應該是go吧 06/09 15:28
※ 編輯: yam276 (60.248.143.163 臺灣), 06/09/2025 17:13:00