@CrazyHenry
2018-01-01T09:47:12.000000Z
字数 893
阅读 1204
ddddLeetcode刷题
- Author:李英民 | Henry
- E-mail: li
_
yingmin@
outlookdot
com- 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类型值。