📌  相关文章
📜  查找按字典顺序排列的最小旋转序列的 Javascript 程序设置 2

📅  最后修改于: 2022-05-13 01:57:06.554000             🧑  作者: Mango

查找按字典顺序排列的最小旋转序列的 Javascript 程序设置 2

编写代码以查找圆形数组中的字典最小值,例如对于数组 BCABDADAB,字典最小值为 ABBCABDAD
输入约束:1 < n < 1000
例子:

Input:  GEEKSQUIZ
Output: EEKSQUIZG

Input:  GFG
Output: FGG

Input :  CAPABCQ
Output : ABCQCAP

我们已经讨论了字典最小字符串旋转中的 O(n 2 Logn) 解决方案 |设置1。这里我们需要找到最小旋转的起始索引,然后打印旋转。

1) Initially assume 0 to be current min 
   starting index.
2) Loop through i = 1 to n-1.
   a) For each i compare sequence starting 
      at i with current min starting index
   b) If sequence starting at i is lexicographically 
      smaller, update current min starting 
      index.

这是算法的伪代码

function findIndexForSmallestSequence(S, n):
    result = 0
    for i = 1:n-1
        if (sequence beginning at i < 
               sequence beginning at result)
            result = i
        end if
    end for
    return result

这是上述算法的实现。

Javascript


输出:

AADCACBC

时间复杂度: O(n^2)
辅助空间: O(1)
请参阅有关按字典顺序排列的最小旋转序列的完整文章 |设置2了解更多详情!