Kotlin Leetcode - 1051. Height Checker
class Solution {
fun heightChecker(heights: IntArray): Int {
}
}
解題思路
這一題考的是陣列的處理
邏輯相對直觀
- 建立輸入陣列的副本
- 將副本排序
- 建立
count
變數 - 比對輸入陣列和副本的差異
- 如果兩者元素有差異,
count
加一
- 如果兩者元素有差異,
- 回傳
count
迴圈的部分可以選用 forEachIndexed
實作
Kotlin 參考解答
點擊展開解答
用 for 迴圈實作的方式
class Solution {
fun heightChecker(heights: IntArray): Int {
val expect = heights.copyOf()
.apply {
sort()
}
var count = 0
for (i in heights.indices) {
if (heights[i] != expect[i]) {
count++
}
}
return count
}
}
用 forEachIndexed
實作的方式如下
class Solution {
fun heightChecker(heights: IntArray): Int {
val expect = heights.copyOf()
.apply {
sort()
}
var count = 0
heights.forEachIndexed { i, _ ->
if (heights[i] != expect[i]) {
count++
}
}
return count
}
}
回到 leetcode 列表