mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
添加0704二分查找 Ruby 版本
This commit is contained in:
@ -235,8 +235,6 @@ class Solution:
|
||||
return -1
|
||||
```
|
||||
|
||||
|
||||
|
||||
**Go:**
|
||||
|
||||
(版本一)左闭右闭区间
|
||||
@ -279,7 +277,7 @@ func search(nums []int, target int) int {
|
||||
}
|
||||
```
|
||||
|
||||
**javaScript:**
|
||||
**JavaScript:**
|
||||
|
||||
```js
|
||||
|
||||
@ -316,7 +314,45 @@ var search = function(nums, target) {
|
||||
|
||||
```
|
||||
|
||||
**Ruby:**
|
||||
|
||||
```ruby
|
||||
# (版本一)左闭右闭区间
|
||||
|
||||
def search(nums, target)
|
||||
left, right = 0, nums.length - 1
|
||||
while left <= right # 由于定义target在一个在左闭右闭的区间里,因此极限情况下存在left==right
|
||||
middle = (left + right) / 2
|
||||
if nums[middle] > target
|
||||
right = middle - 1
|
||||
elsif nums[middle] < target
|
||||
left = middle + 1
|
||||
else
|
||||
return middle # return兼具返回与跳出循环的作用
|
||||
end
|
||||
end
|
||||
-1
|
||||
end
|
||||
|
||||
# (版本二)左闭右开区间
|
||||
|
||||
def search(nums, target)
|
||||
left, right = 0, nums.length - 1
|
||||
while left < right # 由于定义target在一个在左闭右开的区间里,因此极限情况下right=left+1
|
||||
middle = (left + right) / 2
|
||||
if nums[middle] > target
|
||||
right = middle
|
||||
elsif nums[middle] < target
|
||||
left = middle + 1
|
||||
else
|
||||
return middle
|
||||
end
|
||||
end
|
||||
-1
|
||||
end
|
||||
|
||||
p search(nums,target)
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user