first init
This commit is contained in:
43
array/1binary search/704Binary search/kotlin/704.kt
Normal file
43
array/1binary search/704Binary search/kotlin/704.kt
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
// (版本二)左闭右闭区间
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
class Solution_2 {
|
||||
|
||||
fun search(nums: IntArray, target: Int): Int {
|
||||
var left = 0
|
||||
var right = nums.size // [left,right) 右侧为开区间,
|
||||
while (left < right) {
|
||||
val mid = (left + right) / 2
|
||||
if (nums[mid] < target) left = mid + 1
|
||||
else if (nums[mid] > target) right = mid // 代码的核心,循环中 right 是开区间,这里应是开区间
|
||||
else return mid
|
||||
}
|
||||
return -1 // 没有找到 target ,返回 -1
|
||||
}
|
||||
}
|
||||
|
||||
// 测试用例
|
||||
fun main() {
|
||||
val nums = intArrayOf( 0, 1, 2, 4, 5, 6, 7)
|
||||
val target = 0
|
||||
val solution = Solution()
|
||||
val result = solution.search(nums, target)
|
||||
val solution2 = Solution_2()
|
||||
val result2 = solution2.search(nums, target)
|
||||
println("Solution 1: $result") // 0
|
||||
println("Solution 2: $result2") // 0
|
||||
|
||||
}
|
||||
70
array/1binary search/704Binary search/kotlin/App.kt
Normal file
70
array/1binary search/704Binary search/kotlin/App.kt
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* 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")
|
||||
// }
|
||||
Reference in New Issue
Block a user