071_根据身高重建队列

知识点:贪心

LeetCode第四百零六题:https://leetcode-cn.com/problems/queue-reconstruction-by-height/submissions/

语言:GoLang

// 今日份儿抄答案:每个人不需要关心前面比自己矮的人,因此可以任意放入较矮的人
func reconstructQueue(people [][]int) [][]int {
    sort.Slice(people, func(i, j int) bool {
        if people[i][0] != people[j][0] {
            return people[i][0] > people[j][0]
        } else {
            return people[i][1] < people[j][1]
        }
    })

    for k, v := range people {
        if v[1] != k {
            // 由for换成copy之后,时间从16%提升到97%
            copy(people[v[1] + 1 : k + 1], people[v[1] : k])
            // for j := i - 1; j >= tmp[1]; j-- {
            //     people[j + 1] = people[j]
            // }
            people[v[1]] = v
        }
    }

    return people
}
posted @ 2020-07-17 11:10  Cenyol  阅读(53)  评论(0编辑  收藏  举报