检查数组是否包含Python中给定范围的所有元素
假设我们有一个名为nums的数组。我们还有两个数字x和y定义了范围[x,y]。我们必须检查数组是否包含给定范围内的所有元素。
因此,如果输入像nums=[5,8,9,6,3,2,4]x=2y=6,则输出为true,因为所有元素[2,3,4,5,6]。
为了解决这个问题,我们将遵循以下步骤-
temp_range:=y-x
对于范围从0到nums的i,执行
z:=|nums[i]|-X
如果nums[z]>0,则
nums[z]:=-nums[z]
如果|nums[i]|>=x和|nums[i]|<=y,然后
cnt:=0
对于范围在0到temp_range之间的我,执行
cnt:=cnt+1
返回False
从循环中出来
如果i>=nums的大小,则
如果nums[i]>0,则
除此以外,
如果cnt与(temp_range+1)不同,则
返回False
返回True
让我们看下面的实现以更好地理解-
示例
def solve(nums, x, y) :
temp_range = y - x
for i in range(0, len(nums)):
if abs(nums[i]) >= x and abs(nums[i]) <= y:
z = abs(nums[i]) - x
if (nums[z] > 0) :
nums[z] = nums[z] * -1
cnt = 0
for i in range(0, temp_range + 1):
if i >= len(nums):
break
if nums[i] > 0:
return False
else:
cnt += 1
if cnt != temp_range + 1:
return False
return True
nums = [5,8,9,6,3,2,4]
x = 2
y = 6
print(solve(nums, x, y))输入值
[5,8,9,6,3,2,4], 2, 6输出结果
True