gpt4 book ai didi

在有序列表中获取唯一相邻整数的 Pythonic 方法

转载 作者:行者123 更新时间:2023-12-02 02:31:36 24 4
gpt4 key购买 nike

给定一个有序整数列表,返回小于 N 的最大整数和大于 N 的最小整数。如果没有,则打印“X”。

最佳答案

据我所知,这是最快的解决方案。

def binary_search(arr, x):
low = 0
high = len(arr) - 1
mid = 0
lm = -1
while low <= high:
lm = mid
mid = (high + low) // 2
if arr[mid] < x:
low = mid + 1
elif arr[mid] > x:
high = mid - 1
else:
return mid
if lm == mid:break
return mid

def find_next_bigger(arr,n,i):
while i < len(arr):
if arr[i] > n:
return arr[i]
i += 1
return arr[i] if i < len(arr) else "X"

def find_next_smaller(arr, n,i):
while i >= 0:
if arr[i] < n:
return arr[i]
i -= 1
return arr[i] if i > 0 else "X"

def solution(arr, n):
if n > arr[-1]:
return arr[-1], "X"
if arr[0] > n:
return "X", arr[0]
i = binary_search(arr, n)
bigger = find_next_bigger(arr, n, i)
smaller = find_next_smaller(arr,n,i)
return smaller, bigger

关于在有序列表中获取唯一相邻整数的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64964821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com