@CrazyHenry
2018-01-01T01:47:12.000000Z
字数 893
阅读 1486
ddddLeetcode刷题
- Author:李英民 | Henry
- E-mail: li
_yingmin@outlookdotcom- Home: https://liyingmin.wixsite.com/henry
快速了解我: About Me
转载请保留上述引用内容,谢谢配合!


难点:是否考虑0,考虑0该怎么处理。
分析:

//Author: Li-Yingmin@https://liyingmin.wixsite.com/henry//Email: li_yingmin@outlook.com//Elsecode-1//T(n)=O(nlogn)~O(n^2), S(n)=O(1)#include <iostream>#include <string>#include <vector>#include <iterator>#include <algorithm>using std::vector;using std::string;using std::cout;using std::cin;using std::endl;using std::ostream;void sort(vector<int> &nums){sort(nums.begin(), nums.end(), [](const int &a, const int &b){return a>=0?(a>0?false:(b>0?true:false)):(a*b>0?false:true);});}int main(){vector<int> nums = {2,-1,5,6,0,0,1,0,-5,-9};sort(nums);for(auto ivec:nums)cout<<ivec<<" ";cout<<endl;return 0;}

无非是重新定义了"<"的意义,排序算法的时间复杂度是O(nlogn)到O(n^2)之间。
?:满足右结合律,但是为了看起来方便,最好都加上(),逻辑由外层看到内层即可,表达式返回bool类型值。
