下一个排列定义

问题描述 投票:0回答:1

实施下一个排列,对于给定大小为N的数组A,将数字重新排列为数字在数字上的下一个更大的排列。

如果无法进行这种排列,则必须将其重新排列为最低可能的顺序,即以升序排列。

此问题的测试案例包括:

输入:A = [20, 50, 113]

输出:[20, 113, 50]

[20, 113, 50]如何大于[20, 50, 113]

类似地,输入:A = [5, 18, 9]

输出:[9, 5, 18]

下一个排列如何而不是[5,9,18]

c++ arrays permutation
1个回答
1
投票

[20,113,50]如何大于[20,50,113]?

因为它大于([字典上]],所以它的工作方式如下:

  1. 如果第一项大于或小于则为结果。

  • 否则,如果它们相等,则如果第二项大于或小于则为结果。
  • 否则,如果它们相等,则如果第三项大于或小于则为结果。
  • 否则他们是相等的。
  • 所以是[20, 113, 50] > [20, 50, 113],因为在步骤1:20 == 20和在步骤2:113 > 50

    同样:[5, 9, 18] < [5, 18, 9]因为9 < 18[9, 5, 18] > [5, 18, 9]因为9 > 5

    © www.soinside.com 2019 - 2024. All rights reserved.