1,题目

2,思路
- 找到max与min的下标
- 如果是max>min获取距离就好了,0到min的距离加上下标最后一位减去max的距离就是最少次数
- min>max次数要-1,why?如下图得出的公式和max>min是一样的,-1是因为max与min交换时候只需要一次而不是俩次所以得减去1,如果不理解尝试理解这个例子脑补一下:3,2,1

3,代码
public class Leetcode2717 {public static void main(String[] args) {System.out.println(new Solution2717().semiOrderedPermutation(new int[]{3, 2, 1}));}
}class Solution2717 {public int semiOrderedPermutation(int[] nums) {int min, max;min = max = nums[0];int mini, maxi;mini = maxi = 0;for (int i = 1; i < nums.length; i++) {if (nums[i] >= max) {max = nums[i];maxi = i;} else if (nums[i] < min) {min = nums[i];mini = i;}}int num = nums.length - 1 - maxi + mini;if (maxi < mini) {num--;}return num;}
}