leetcode 每日一题 1051. 高度检查器

leetcode 每日一题 1051. 高度检查器

import (
    "sort"
)

func heightChecker(heights []int) int {
    var num = 0
    src := heights
    dst := make([]int, len(src))
    copy(dst, src)
    sort.Ints(dst)
    for i,_ := range dst {
        if dst[i] != src[i] {
            num++
        }
    }
    return num
}

 计数排序优化
func heightChecker(heights []int) int {
    arr := [101]int{}
    for i := 0; i < len(heights); i++ {
         arr[heights[i]]++
    }
    index := 0
    res := 0
    for i,data := range arr {
        if data == 0{
            continue;
        }
        for j := 0 ; j < data ;j++ {
            if heights[index] != i {
                res++
            }
            index++
        }
    }
    return res
}

 

posted @ 2022-06-13 09:45  java架构师1  阅读(21)  评论(0)    收藏  举报