Skip to main content
  1. 闲来无事 温雪煮茶/

Leetcode

·1 min·

Leetcode 每日一题
#

2717. 半有序排列

给你一个下标从 0 开始、长度为 n 的整数排列 nums

如果排列的第一个数字等于 1 且最后一个数字等于 n ,则称其为 半有序排列 。你可以执行多次下述操作,直到将 nums 变成一个 半有序排列

  • 选择 nums 中相邻的两个元素,然后交换它们。

返回使 nums 变成 半有序排列 所需的最小操作次数。

排列 是一个长度为 n 的整数序列,其中包含从 1n 的每个数字恰好一次。

模拟 搜索 需要注意当开始位于结束后 交换次数少一次

func semiOrderedPermutation(nums []int) int {
	var begin int
	var end int
	for k, v := range nums {
		if v == 1 {
			begin = k
		}
		if v == len(nums) {
			end = k
		}
	}
    if begin>end{
        return begin+(len(nums)-1-end)-1
    }
    return begin+(len(nums)-1-end)

}
Sianao
Author
Sianao
a backend developer

Related

cf加速
·2 mins
Cdn
restful
·2 mins
About me
·1 min
binlog
·3 mins
Mysql
golang
·8 mins
Golang
k3s
·2 mins