首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2022-01-04:一个无序数组长度为n,所有数字都不一样,并

2022-01-04:一个无序数组长度为n,所有数字都不一样,并

原创
作者头像
福大大架构师每日一题
发布2022-01-04 23:32:38
发布2022-01-04 23:32:38
3680
举报

2022-01-04:一个无序数组长度为n,所有数字都不一样,并且值都在0...n-1范围上。

返回让这个无序数组变成有序数组的最小交换次数。

来自小红书。

答案2022-01-04:

下标循环怼。

时间复杂度:大于O(N)。待定。

空间复杂度:O(1)。

代码用golang编写。代码如下:

代码语言:txt
复制
package main

import "fmt"

func main() {
    arr := []int{4, 3, 2, 1, 0}
    ret := minSwap2(arr)
    fmt.Println(ret)
}

func minSwap2(arr []int) int {
    ans := 0
    for i := 0; i < len(arr); i++ {
        for i != arr[i] {
            arr[i], arr[arr[i]] = arr[arr[i]], arr[i]
            ans++
        }
    }
    return ans
}

执行结果如下:

图片
图片

左神java代码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档