mirror of
https://github.com/TheAlgorithms/Ruby
synced 2025-01-14 08:01:05 +01:00
add formatting and example outputs for quick debugging
This commit is contained in:
parent
bb967fba48
commit
bd92198fc8
1 changed files with 76 additions and 68 deletions
|
@ -18,9 +18,6 @@
|
||||||
# 0 <= nums.length <= 3000
|
# 0 <= nums.length <= 3000
|
||||||
#-105 <= nums[i] <= 105
|
#-105 <= nums[i] <= 105
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Two Pointer Approach - O(n) Time / O(1) Space
|
# Two Pointer Approach - O(n) Time / O(1) Space
|
||||||
# Return edge cases.
|
# Return edge cases.
|
||||||
# Sort nums, and init ans array
|
# Sort nums, and init ans array
|
||||||
|
@ -35,7 +32,6 @@
|
||||||
# .. (left += 1 while nums[left] == nums[left - 1] && left < right)
|
# .. (left += 1 while nums[left] == nums[left - 1] && left < right)
|
||||||
# Return ans[]
|
# Return ans[]
|
||||||
|
|
||||||
|
|
||||||
# @param {Integer[]} nums
|
# @param {Integer[]} nums
|
||||||
# @return {Integer[][]}
|
# @return {Integer[][]}
|
||||||
def three_sum(nums)
|
def three_sum(nums)
|
||||||
|
@ -43,7 +39,8 @@ def three_sum(nums)
|
||||||
return [] if nums.length < 3
|
return [] if nums.length < 3
|
||||||
|
|
||||||
# sort nums, init ans array
|
# sort nums, init ans array
|
||||||
nums, ans = nums.sort, []
|
nums = nums.sort
|
||||||
|
ans = []
|
||||||
|
|
||||||
# loop through nums
|
# loop through nums
|
||||||
nums.each_with_index do |val, ind|
|
nums.each_with_index do |val, ind|
|
||||||
|
@ -51,7 +48,8 @@ def three_sum(nums)
|
||||||
next if ind > 0 && nums[ind] == nums[ind - 1]
|
next if ind > 0 && nums[ind] == nums[ind - 1]
|
||||||
|
|
||||||
# init & run two pointer search
|
# init & run two pointer search
|
||||||
left, right = ind + 1, nums.length - 1
|
left = ind + 1
|
||||||
|
right = nums.length - 1
|
||||||
|
|
||||||
while left < right
|
while left < right
|
||||||
# find current sum
|
# find current sum
|
||||||
|
@ -68,9 +66,7 @@ def three_sum(nums)
|
||||||
|
|
||||||
left += 1
|
left += 1
|
||||||
|
|
||||||
while nums[left] == nums[left - 1] && left < right
|
left += 1 while nums[left] == nums[left - 1] && left < right
|
||||||
left += 1
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -78,3 +74,15 @@ def three_sum(nums)
|
||||||
# return answer
|
# return answer
|
||||||
ans
|
ans
|
||||||
end
|
end
|
||||||
|
|
||||||
|
nums = [-1, 0, 1, 2, -1, -4]
|
||||||
|
print three_sum(nums)
|
||||||
|
# Output: [[-1,-1,2],[-1,0,1]]
|
||||||
|
|
||||||
|
nums = []
|
||||||
|
print three_sum(nums)
|
||||||
|
# Output: []
|
||||||
|
|
||||||
|
nums = [0]
|
||||||
|
print three_sum(nums)
|
||||||
|
# Output: []
|
||||||
|
|
Loading…
Reference in a new issue