在JavaScript中排序数组的最小交换次数

时间:2019-04-13 16:28:29

标签: javascript data-structures

任务

玛丽是一位著名的店主,在她的商店里卖n件商品。她为每个商品分配了一个独特的受欢迎程度等级,范围从 1到n

这家商店只有一个架子,因此物品以阵列形式显示在从左到右的任意行中,并且顺序随机。她想通过降低 受欢迎程度来重新排列货架上的商品,以使 i 物品的评价始终大于(i + 1)项。玛丽可以在一次操作中交换任意两个项目 i j

规格

minimumSwaps(ratings)-要创建的函数

参数

评分Array<Number>-一组数字,指示货架上每个商品的受欢迎程度。

返回值

数字-表示玛丽通过降低受欢迎程度来订购所有n项物品必须执行的最小交换操作次数。

约束 n = 评分数组中的项目数

每个评分值(arri)都是唯一的

1 ≤ n ≤ 2 × 10^5

1 ≤ arri ≤ n

示例 评分返回值 示例1 [3,1,2]- minimumSwaps([3,1,2])返回 1 示例2 [3,1,2,4]- minimumSwaps([3,1,2])返回 2

0 个答案:

没有答案