‹ 上一题 下一题 ›

g5-08457. prev_permutation·从最大排列出发 未做

1000 ms 256 MB 测试点 ? 知识点题GESP-55级·STL客观题单选

想按字典序从大到小输出 {1, 2, 3} 的全部 6 个排列(321 打头、123 收尾):

vector<int> v = {2, 1, 3};
//(横线)
do {
    for (int x : v) cout << x;
    cout << "\n";
} while (prev_permutation(v.begin(), v.end()));

横线处应填入( )。

  • A. sort(v.begin(), v.end(), greater<int>());——prev_permutation 沿字典序只往后退,想一个不漏必须先排成最大排列
  • B. sort(v.begin(), v.end());——先排成最小排列再枚举
  • C. 什么都不填——do-while 第一轮会自动把 v 调整成 321
  • D. reverse(v.begin(), v.end());——先反转一下就能得到最大排列
未选择
输入
输出

            
答案