Redian新闻
>
问一个题目merge intervals
avatar
问一个题目merge intervals# JobHunting - 待字闺中
g*j
1
在排序的时候,用到这个比较的function来排序这些intervals
sort(intervals.begin(), intervals.end(), isLess);
因为是按照x的坐标来比较的,为啥这里必须用 < 而不是<=,为啥用<= 就会错呢?
bool isLess(const Interval a, const Interval b) {
return a.start < b.start; // couldn't use <=
}
这是算法的问题,还是c++的问题?
avatar
h*e
3
你可以trace 进去看看么 <= 反正相等的时候assert wrong
avatar
R*i
4
没做过leetcode的题,我胡言两句。
没觉得用<=是错的(在某些情况下可能是必须的),只是觉得不好。第一,函数名字叫
isLess,结果你用了<=,这个不匹配函数名,不好,第二,C++的sort一般用的是
introsort方法吧?如果后一个等于前一个的情况下,还要swap的话,速度肯定比不
swap慢。所以从速度上看,也尽量不swap的好。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。