给出了以下算法,我们应该用java写出来。但是,当我尝试逐行理解时,会感到困惑,尤其是以下部分:
A[k+1:N-1] = S 中的值升序排列
据我了解,该套装在任何时候都只有 1 个号码。A[k+1:N-1]当集合只有 1 个数字时,我们如何替换?
0让 A 是一个按升序排列的整数序列N-1(假设它是一个 的数组int[N])。
next_permutation(A):
    k = N-1
    S = { }
    while k >= 0:
        if S contains a value larger than A[k]:
            v = the smallest member of S that is larger than A[k]
            remove v from S
            insert A[k] in S
            A[k] = v
            A[k+1:N-1] = the values in S in ascending order.
            return true
        else:
            insert A[k] in S
            k -= 1
    return false