一台网站服务器多少钱,电子商务网站建设管理实训报告,Php做网站创业,网页游戏手机资料#xff1a;
1. 排序#xff1a;Sort函数 升序#xff1a;默认。 降序#xff1a;加入第三个参数#xff0c;可以greatertype()#xff0c;也可以自己定义 本题中发现#xff0c;sort居然也可以对vectorvectorint排序。
C Sort函数详解_…资料
1. 排序Sort函数 升序默认。 降序加入第三个参数可以greatertype()也可以自己定义 本题中发现sort居然也可以对vectorvectorint排序。
C Sort函数详解_zhangbw~的博客-CSDN博客 自己写的
感觉我写的就是排列组合。
感觉时间复杂度很大应该超过On^2。
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param num int整型vector* return int整型vectorvector*/vectorvectorint threeSum(vectorint num) {// write code herevectorvectorint res;for (int i 0; i num.size(); i) { for (int j i 1; j num.size() - 1; j) { // 粗心是j i 1不是j iif (find(num.begin() j 1, num.end(), -num[i] - num[j]) ! num.end()) { //存在这样的[a,b,c]vectorint temp {num[i], num[j], -num[i] - num[j]}; // 粗心不是temp {i, j, -i-j};sort(temp.begin(), temp.end());if (find(res.begin(), res.end(), temp) res.end()) //之前没出现过这样的[a,b,c]res.push_back(temp);}}}sort(res.begin(), res.end()); //题目中没说要排序啊return res;}
};
模板的
两个指针单向移动。保证答案的完整性。三个值移动时都去重。保证答案的去重性。处理边界的时候需要思考很久。所以还是死记这种方法由于两个指针在第二个循环里一起移动所以时间复杂度确实是O(n^2).
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param num int整型vector* return int整型vectorvector*/vectorvectorint threeSum(vectorint num) {// write code herevectorvectorint res;int n num.size();if(n 3)return res;sort(num.begin(), num.end()); // 粗心忘记for(int i 0; i n-2; i){// 去重if( i ! 0 num[i] num[i-1]){ //粗心不是num[i] num[i1]// i; //粗心不需要的continue;}int left i 1;int right n - 1;while(left right){if(num[i]num[left]num[right] 0){res.push_back({num[i], num[left], num[right]}); //这种初始化while(left 1 right num[left] num[left1]){ // 去重left ; }while(right - 1 left num[right] num[right-1]){ // 去重right --;}left ; //粗心忘记right --; //粗心忘记}else if (num[i]num[left]num[right] 0)left ;elseright --;}}return res;}
};