leetcode每日一题(20241211)

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;
    }
}

加油!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值