1、降序排序(40ms,70%;15.5MB,92%)
1 int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) { 2 //这是二维向量,boxTypes.size()表示行数,boxTypes[].size()表示列数 3 //表示列数的[]可以是[0]、[1]、[2]等,只要有[]就是二维的 4 int sum=0; 5 int a=0; 6 int len=truckSize; 7 //对向量第二维进行降序排序,没看懂 8 sort(boxTypes.begin(),boxTypes.end(),[](const auto &L,const auto &R) {return L[1]>R[1];}); 9 while(a<boxTypes.size()&&len!=0){ 10 if(boxTypes[a][0]<len){ 11 len-=boxTypes[a][0]; 12 sum+=(boxTypes[a][0]*boxTypes[a][1]); 13 a++; 14 } 15 else{ 16 sum+=(len*boxTypes[a][1]); 17 len=0; 18 } 19 } 20 return sum; 21 }
2、降序排序(44ms,46%;15.5MB,92%)
1 static bool cmp(const vector<int>& L,const vector<int>& R){ 2 return L[1]>R[1]; 3 } 4 int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) { 5 //这是二维向量,boxTypes.size()表示行数,boxTypes[].size()表示列数 6 //表示列数的[]可以是[0]、[1]、[2]等,只要有[]就是二维的 7 int sum=0; 8 int a=0; 9 int len=truckSize; 10 //对向量第二维进行降序排序,还是没看懂 11 sort(boxTypes.begin(),boxTypes.end(),cmp); 12 while(a<boxTypes.size()&&len!=0){ 13 if(boxTypes[a][0]<len){ 14 len-=boxTypes[a][0]; 15 sum+=(boxTypes[a][0]*boxTypes[a][1]); 16 a++; 17 } 18 else{ 19 sum+=(len*boxTypes[a][1]); 20 len=0; 21 } 22 } 23 return sum; 24 }
3、升序排序(44ms,46%;15.5MB,92%)
1 int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) { 2 //这是二维向量,boxTypes.size()表示行数,boxTypes[].size()表示列数 3 //表示列数的[]可以是[0]、[1]、[2]等,只要有[]就是二维的 4 int sum=0; 5 int a=boxTypes.size()-1; 6 int len=truckSize; 7 //对向量第二维进行升序排序,没看懂 8 sort(boxTypes.begin(),boxTypes.end(),[](const auto& L,const auto& R){return L[1]<R[1];}); 9 while(a<boxTypes.size()&&len!=0){ 10 if(boxTypes[a][0]<len){ 11 len-=boxTypes[a][0]; 12 sum+=(boxTypes[a][0]*boxTypes[a][1]); 13 a--; 14 } 15 else{ 16 sum+=(len*boxTypes[a][1]); 17 len=0; 18 } 19 } 20 return sum; 21 }
4、升序排序(40ms,70%;15.5MB,92%)
1 static bool cmp(const vector<int>& L,const vector<int>& R){ 2 return L[1]<R[1]; 3 } 4 int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) { 5 //这是二维向量,boxTypes.size()表示行数,boxTypes[].size()表示列数 6 //表示列数的[]可以是[0]、[1]、[2]等,只要有[]就是二维的 7 int sum=0; 8 int a=boxTypes.size()-1; 9 int len=truckSize; 10 //对向量第二维进行升序排序,还是没看懂 11 sort(boxTypes.begin(),boxTypes.end(),cmp); 12 while(a<boxTypes.size()&&len!=0){ 13 if(boxTypes[a][0]<len){ 14 len-=boxTypes[a][0]; 15 sum+=(boxTypes[a][0]*boxTypes[a][1]); 16 a--; 17 } 18 else{ 19 sum+=(len*boxTypes[a][1]); 20 len=0; 21 } 22 } 23 return sum; 24 }
浙公网安备 33010602011771号