mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-06 23:28:29 +08:00
Merge pull request #1357 from Mrxulovemingming/master
添加0704.二分查找 Kotlin版本
This commit is contained in:
@ -338,6 +338,20 @@ int removeElement(int* nums, int numsSize, int val){
|
||||
return slow;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Kotlin:
|
||||
```kotlin
|
||||
fun removeElement(nums: IntArray, `val`: Int): Int {
|
||||
var slowIndex = 0 // 初始化慢指针
|
||||
for (fastIndex in nums.indices) {
|
||||
if (nums[fastIndex] != `val`) nums[slowIndex++] = nums[fastIndex] // 在慢指针所在位置存储未被删除的元素
|
||||
}
|
||||
return slowIndex
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Scala:
|
||||
```scala
|
||||
object Solution {
|
||||
@ -353,5 +367,6 @@ object Solution {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
-----------------------
|
||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||
|
@ -612,6 +612,40 @@ 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
|
||||
}
|
||||
}
|
||||
```
|
||||
**Scala:**
|
||||
|
||||
(版本一)左闭右闭区间
|
||||
@ -655,5 +689,6 @@ object Solution {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
-----------------------
|
||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||
|
@ -360,6 +360,30 @@ class Solution {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Kotlin:
|
||||
```kotlin
|
||||
class Solution {
|
||||
// 双指针法
|
||||
fun sortedSquares(nums: IntArray): IntArray {
|
||||
var res = IntArray(nums.size)
|
||||
var left = 0 // 指向数组的最左端
|
||||
var right = nums.size - 1 // 指向数组端最右端
|
||||
// 选择平方数更大的那一个往 res 数组中倒序填充
|
||||
for (index in nums.size - 1 downTo 0) {
|
||||
if (nums[left] * nums[left] > nums[right] * nums[right]) {
|
||||
res[index] = nums[left] * nums[left]
|
||||
left++
|
||||
} else {
|
||||
res[index] = nums[right] * nums[right]
|
||||
right--
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Scala:
|
||||
|
||||
双指针:
|
||||
|
Reference in New Issue
Block a user