排序 + 遍历
2023年8月7日 12:19
Problem: 2784. 检查数组是否是好的
[TOC]
思路
排序 + 一次遍历
解题方法
排序后计算数组长度,如果数组最后一个值大于等于当前数组长度,直接返回False。依次遍历数组起始至倒数第二个值下标与值是否相等,不相等返回False。
复杂度
- 时间复杂度:
添加时间复杂度, 示例: $O(n)$
- 空间复杂度:
添加空间复杂度, 示例: $O(n)$
Code
###Python3
class Solution:
def sort_ergo(self, arr):
size = len(arr)
arr.sort()
if arr[-1] >= size:
return False
for indx, val in enumerate(arr[:size-1], 1):
if indx != val:
return False
return True
def isGood(self, nums: List[int]) -> bool:
# 方法:排序 + 遍历
return self.sort_ergo(nums)