From a4b024705b276e5cf69a2a521af8b923a32daaca Mon Sep 17 00:00:00 2001 From: xuxiaomeng <961592690@qq.com> Date: Thu, 19 May 2022 20:25:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A00704.=E4=BA=8C=E5=88=86?= =?UTF-8?q?=E6=9F=A5=E6=89=BE=20Kotlin=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0704.二分查找.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/problems/0704.二分查找.md b/problems/0704.二分查找.md index 55625130..9173d1da 100644 --- a/problems/0704.二分查找.md +++ b/problems/0704.二分查找.md @@ -611,6 +611,38 @@ public class Solution{ } ``` +**Kotlin:** +```Kotlin +// (版本一)左闭右开区间 +class Solution { + fun search(nums: IntArray, target: Int): Int { + var left = 0 + var right = nums.size // [left,right) 右侧为开区间,right 设置为 nums.size + 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 + } +} +// (版本二)左闭右闭区间 +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 + } +} +``` + -----------------------