检查Python数组元素是否连续
假设我们有一个名为nums的数字数组。我们必须检查它是否包含连续的值。
因此,如果输入类似于nums = [6, 8, 3, 5, 4, 7],则输出将为true,因为元素为3, 4, 5, 6, 7, 8。
为了解决这个问题,我们将遵循以下步骤:
- 如果nums的大小< 1,则
- 返回False
- min_val := nums的最小值,max_val := nums的最大值
- 如果(max_val - min_val + 1)与nums的大小相同,则
- 对于i从0到nums的大小的范围,执行
- 如果nums[i] < 0,则
- j:= -nums[i] - min_val
- 否则,
- j := nums[i] - min_val
- 如果nums[j] > 0,则
- nums[j] := -nums[j]
- 否则,
- 返回False
- 如果nums[i] < 0,则
- 返回True
- 对于i从0到nums的大小的范围,执行
- 返回False
让我们看看下面的实现以更好地理解:
示例
def solve(nums): if len(nums) < 1: return False min_val = min(nums) max_val = max(nums) if max_val - min_val + 1 == len(nums): for i in range(len(nums)): if nums[i] < 0: j = -nums[i] - min_val else: j = nums[i] - min_val if nums[j] > 0: nums[j] = -nums[j] else: return False return True return False nums = [6, 8, 3, 5, 4, 7] print(solve(nums))
输入
[6, 8, 3, 5, 4, 7]
输出
True
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP