658. Find K Closest Elements
Given a sorted integer array arr
, two integers k
and x
, return the k
closest integers to x
in the array. The result should also be sorted in ascending order.
An integer a
is closer to x
than an integer b
if:
|a - x| < |b - x|
, or|a - x| == |b - x|
anda < b
Example 1:
Input: arr = [1,2,3,4,5], k = 4, x = 3
Output: [1,2,3,4]
Example 2:
Input: arr = [1,2,3,4,5], k = 4, x = -1
Output: [1,2,3,4]
Constraints:
1 <= k <= arr.length
1 <= arr.length <= 104
- Absolute value of elements in the array and
x
will not exceed104
# @lc code=start
using LeetCode
function find_closest_elements(arr::Vector{Int}, k::Int, x::Int)
res = Int[]
j = searchsortedfirst(arr, x)
i = j - 1
for _ in 1:k
if i == 0 || (j <= length(arr) && arr[j] - x < x - arr[i])
push!(res, arr[j])
j += 1
else
pushfirst!(res, arr[i])
i -= 1
end
end
return res
end
# @lc code=end
find_closest_elements (generic function with 1 method)
This page was generated using DemoCards.jl and Literate.jl.