在 Python 中从算术序列中查找已删除项的程序
假设我们有一个名为nums的数组,其中包含n-1个等差数列项。之前删除了除nums的第一个或最后一个元素之外的一个元素。我们必须找到被删除的号码。
因此,如果输入类似于nums=[5,7,11,13],则输出将为9,因为项目遵循公式2i+5,因此对于i=2,它将是2*2+5=9缺少。
示例
让我们看下面的实现来更好地理解
def solve(nums):
if len(nums) == 2:
return sum(nums) //2
if nums[0] == nums[1]:
return nums[0]
lower = nums[0]
upper = nums[-1]
interval = (upper - lower) //长度(编号)
pointer = len(nums) //2
left = 0
right = len(nums) - 1
while left != right:
if nums[pointer] != nums[0] + interval * pointer:
if nums[pointer - 1] == nums[0] + interval * (pointer -1):
return nums[0] + interval * pointer
else:
right = pointer
pointer = (left + right) //2
else:
if right - left == 1:
pointer = right
else:
left = pointer
pointer = (left + right) //2
nums = [5, 7, 11, 13]
print(solve(nums))输入
[5, 7, 11, 13]输出结果
9
热门推荐
5 合字的祝福语简短
10 生日祝福语简短独特的
11 长辈钻石婚祝福语简短
12 国庆中秋祝福语简短搞笑
13 送给老师中秋祝福语简短
14 医生节蛋糕祝福语简短
15 最搞笑生日祝福语简短
16 收生日红包祝福语 简短
17 圣诞饭店祝福语大全简短
18 5岁宝宝祝福语简短