检查数组元素在O(n)时间和O(1)空间中是否连续(处理正数和负数)
假设我们有一个称为nums的未排序数字数组。我们必须检查它是否包含连续的值,它也应该支持负数。
因此,如果输入像nums = [-3、5、1,-2,-1、0、2、4、3],则输出为true,因为元素为3、4、5、6, 7、8
为了解决这个问题,我们将遵循以下步骤-
大小:=数字的大小
init_term:= inf
对于介于0到大小范围内的i,执行
init_term:= nums [i]
如果nums [i] <init_term,则
ap_sum:= [[size *(2 * init_term +(size-1)* 1))/ 2)的商
总数:= num的所有元素的总和
当ap_sum与total相同时返回true,否则返回false
让我们看下面的实现以更好地理解-
示例
def solve(nums):size = len(nums) init_term = 999999
for i in range(size):
if nums[i] < init_term:
init_term = nums[i]
ap_sum = (size * (2 * init_term + (size - 1) * 1)) // 2
total = sum(nums) return ap_sum == total
nums = [-3, 5, 1, -2, -1, 0, 2, 4, 3]
print(solve(nums))
输入值
[-3, 5, 1, -2, -1, 0, 2, 4, 3]输出结果
True
以上是 检查数组元素在O(n)时间和O(1)空间中是否连续(处理正数和负数) 的全部内容, 来源链接: utcz.com/z/321389.html