[討論] Leetcode #283 Move zeroes

作者: CoNsTaR ((const *))   2019-10-24 16:38:08
https://leetcode.com/problems/move-zeroes/description/
最直覺的方法是弄一個像這樣的 custom comparater:
/// 0 最大,其他通通相等
fn cmp(lhs: N, rhs: N) -> Ord
where N: Num
{
if rhs == 0 {
Ord::LT
}
else if lhs == 0 {
Ord::GT
}
else {
Ord::EQ
}
}
然後用任何 stable sort 排一下就好了
可是小弟菜逼八,在 solutions 和 discussion 裡面都沒看到相關討論
請問這個做法是有什麼毛病嗎?
作者: CoNsTaR ((const *))   2019-10-24 17:06:00
剛剛用 C++ 在 Leetcode AC 了https://pastebin.com/UfkFiWnr看到 c++ stable_sort 的 discussion 了,抱歉眼殘
作者: ckc1ark (偽物)   2019-10-24 23:51:00
常見的stable sort其實都不算in-place這題的follow-up就是分<0 和>=0 兩邊都要stable
作者: bibo9901 (function(){})()   2019-10-25 01:25:00
因為sort要O(nlgn) 但這題只需要O(n)?
作者: FRAXIS (喔喔)   2019-10-25 10:54:00
C++ 不能用 partition 直接解嗎?comparison-based sort 就算輸入只有 0 和 1 應該都n lg n就看 library 實作有沒有特別對這種 case 最佳化
作者: CoNsTaR ((const *))   2019-10-25 18:53:00
我 submitted 的 Rusthttps://ideone.com/0NGwpX
作者: firejox (Tangent)   2019-10-26 15:28:00
我記得c/c++的優化好像有拿掉過

Links booklink

Contact Us: admin [ a t ] ucptt.com