mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
添加0018.四数之和 Ruby实现
This commit is contained in:
@ -649,6 +649,54 @@ object Solution {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
### Ruby:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
def four_sum(nums, target)
|
||||||
|
#结果集
|
||||||
|
result = []
|
||||||
|
nums = nums.sort!
|
||||||
|
|
||||||
|
for i in 0..nums.size - 1
|
||||||
|
return result if i > 0 && nums[i] > target && nums[i] >= 0
|
||||||
|
#对a进行去重
|
||||||
|
next if i > 0 && nums[i] == nums[i - 1]
|
||||||
|
|
||||||
|
for j in i + 1..nums.size - 1
|
||||||
|
break if nums[i] + nums[j] > target && nums[i] + nums[j] >= 0
|
||||||
|
#对b进行去重
|
||||||
|
next if j > i + 1 && nums[j] == nums[j - 1]
|
||||||
|
left = j + 1
|
||||||
|
right = nums.size - 1
|
||||||
|
while left < right
|
||||||
|
sum = nums[i] + nums[j] + nums[left] + nums[right]
|
||||||
|
if sum > target
|
||||||
|
right -= 1
|
||||||
|
elsif sum < target
|
||||||
|
left += 1
|
||||||
|
else
|
||||||
|
result << [nums[i], nums[j], nums[left], nums[right]]
|
||||||
|
|
||||||
|
#对c进行去重
|
||||||
|
while left < right && nums[left] == nums[left + 1]
|
||||||
|
left += 1
|
||||||
|
end
|
||||||
|
|
||||||
|
#对d进行去重
|
||||||
|
while left < right && nums[right] == nums[right - 1]
|
||||||
|
right -= 1
|
||||||
|
end
|
||||||
|
|
||||||
|
right -= 1
|
||||||
|
left += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
```
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
|
Reference in New Issue
Block a user