Skip to content
Merged

2161 #20

Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions 2101-2200/2161_partition_array_according_to_given_pivot.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# @param {Integer[]} nums
# @param {Integer} pivot
# @return {Integer[]}
def pivot_array(nums, pivot)
low = []
high = []
pivots = []
nums.each { |num|
if num == pivot
pivots << num
elsif num > pivot
high << num
else
low << num
end
}

low + pivots + high
end

# 2 pointers
def pivot_array(nums, pivot)
re_arrange = Array.new(nums.size, pivot)
i = 0
j = nums.size - 1
(0...nums.size).each { |k|
if nums[-k-1] > pivot
re_arrange[j] = nums[-k-1]
j -= 1
end

if nums[k] < pivot
re_arrange[i] = nums[k]
i += 1
end
}

re_arrange
end