题解 | #牛群的编号重排#
牛群的编号重排
https://www.nowcoder.com/practice/220a216469c14a52b4eb6709e041feb1
#include <functional> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cows int整型vector * @return int整型vector */ vector<int> nextPermutation(vector<int>& cows) { // write code here // 判断是否进行了调转 bool flag = false; int len = cows.size(); for(int i=len-1; i>0; --i) { if(cows[i-1]>cows[i]) { flag = true; int temp = cows[i-1]; cows[i-1] = cows[i]; cows[i] = temp; // 细节:找到之后,[i,len-1]之一段得降序排列才行 sort(cows.begin()+i,cows.end(),greater<int>()); break; } } // 已进行下一个更小的数组 if(flag) return cows; sort(cows.begin(), cows.end(), greater<int>()); return cows; } };
虚数五行区解题中心 文章被收录于专栏
非淡泊无以明志,非宁静无以致远