Files
leetcode/array/1binary search/704Binary search/kotlin/App.kt
flowerstonezl e1006fa09c first init
2026-01-29 17:04:05 +08:00

70 lines
1.9 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* This Kotlin source file was generated by the Gradle 'init' task.
*/
package binarySearch
class Solution {
fun search(nums: IntArray, target: Int): Int {
var left = 0
var right = nums.size - 1 // [left,right] 右侧为闭区间right 设置为 nums.size - 1
while (left <= right) {
val mid = (left + right) / 2
if (nums[mid] < target) left = mid + 1
else if (nums[mid] > target) right = mid - 1 // 代码的核心,循环中 right 是闭区间,这里也应是闭区间
else return mid
}
return -1 // 没有找到 target ,返回 -1
}
}
// 测试用例
fun main() {
val nums = intArrayOf(0, 1, 2, 3, 4, 5, 6, 7, 8)
println("请输入要查找的数字:")
val input = readLine()
// 验证输入有效性
if (input.isNullOrBlank()) {
println("错误:未输入任何内容")
return
}
val target = input.toIntOrNull() ?: run {
println("错误:请输入有效的整数")
return
}
val solution = Solution()
val result = solution.search(nums, target)
if (result == -1){
println("不存在$target")
}
else{
println("目标索引位置: $result")
}
}
// fun main() {
// val nums = intArrayOf(4, 5, 6, 7, 0, 1, 2)
// val reader = System.`in`.bufferedReader()
// print("请输入要查找的数字: ")
// System.out.flush()
// val input = reader.readLine()
// if (input.isNullOrBlank()) {
// println("错误:未输入任何内容")
// return
// }
// val target = input.toIntOrNull() ?: run {
// println("错误:请输入有效的整数")
// return
// }
// val solution = Solution()
// val result = solution.search(nums, target)
// println("目标索引位置: $result")
// }