[讨论] 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