leetcode每日一题(20241211)今天是个好日子啊,软考2024年下半年软考出成绩了,我上午题45分下午题52分压线过了,然后今天么每日一题还是简单题,开心一整天!!!
2717.半有序排列 题目描述:
给你一个下标从 0 开始、长度为 n 的整数排列 nums 。
如果排列的第一个数字等于 1 且最后一个数字等于 n ,则称其为 半有序排列 。你可以执行多次下述操作,直到将 nums 变成一个 半有序排列 :
选择 nums 中相邻的两个元素,然后交换它们。
返回使 nums 变成 半有序排列 所需的最小操作次数。
排列 是一个长度为 n 的整数序列,其中包含从 1 到 n 的每个数字恰好一次。
这个题其实模拟一边就知道了,只需要注意如果 数字n 的下标出现在 数字 1 的下标前面时候,挪1 或者 数字 n 时候 其实已经为下一个数字 挪了一次了。
看代码:
class Solution {public int semiOrderedPermutation(int[] nums) {int index1=0;int indexLen=0;int len=nums.length;for(int i=0;i<len;i++){if(nums[i]==1){index1=i;}else if(nums[i]==len){indexLen=i;}}return indexLen<index1?len-2-indexLen+index1:len-1-indexLen+index1;}
}
加油!!!!!!