在 Python 中检查数组是否漂亮
假设我们有一个由唯一元素组成的数组nums。我们必须检查这些条件是否满足:
元素将在1到n的范围内。
数组不能按升序排序。
因此,如果输入类似于nums=[2,6,1,5,3,4],那么输出将为True。
为了解决这个问题,我们将按照以下步骤操作-
n:=数字的大小
总计:=nums[0]
is_sorted:=真
对于1到n-1范围内的i,请执行
is_sorted:=假
返回错误
如果nums[i]与nums[i-1]相同,则
如果nums[i]
总计:=总计+nums[i]
如果is_sorted为真,则
返回错误
当总数与前n个数字之和相同时返回真,否则返回假
让我们看看以下实现以获得更好的理解-
示例代码
def solve(nums): n = len(nums) total = nums[0] is_sorted = True for i in range(1,n): if nums[i] == nums[i - 1]: return False if nums[i] < nums[i - 1]: is_sorted = False total += nums[i] if is_sorted: return False return total == (n * (n + 1) //2) nums = [2,6,1,5,3,4] print(solve(nums))
输入
[2,6,1,5,3,4]输出结果
True