Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1051. 高度检查器 #1

Open
sunwenli opened this issue Jul 11, 2020 · 0 comments
Open

1051. 高度检查器 #1

sunwenli opened this issue Jul 11, 2020 · 0 comments
Labels

Comments

@sunwenli
Copy link
Owner

题目描述:

学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。

请你返回能让所有学生以 非递减 高度排列的最小必要移动人数。

注意,当一组学生被选中时,他们之间可以以任何可能的方式重新排序,而未被选中的学生应该保持不动。

示例:

输入:heights = [1,1,4,2,1,3]
输出:3 
解释:
当前数组:[1,1,4,2,1,3]
目标数组:[1,1,1,2,3,4]
在下标 2 处(从 0 开始计数)出现 4 vs 1 ,所以我们必须移动这名学生。
在下标 4 处(从 0 开始计数)出现 1 vs 3 ,所以我们必须移动这名学生。
在下标 5 处(从 0 开始计数)出现 3 vs 4 ,所以我们必须移动这名学生。

示例 2:

输入:heights = [5,1,2,3,4]
输出:5

示例 3:

输入:heights = [1,2,3,4,5]
输出:0

提示:

1 <= heights.length <= 100
1 <= heights[i] <= 100

实际上,是求出一个数组排序前后相同位置值不一样的个数

题解:

import (
    "sort"
    "fmt"
)

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

func main() {
	heights := []int{1, 1, 4, 2, 1, 3}
 	count := heightChecker(heights)
 	fmt.Println(count) // 3
}

提交结果:

提交时间 提交结果 运行时间 内存消耗 语言
15 分钟前 通过 0 ms 2.2 MB Golang
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant