leetcode:2784. 检查数组是否是好的(python3解法)

发布时间:2024年01月05日

难度:简单

给你一个整数数组?nums?,如果它是数组?base[n]?的一个排列,我们称它是个??数组。

base[n] = [1, 2, ..., n - 1, n, n]?(换句话说,它是一个长度为?n + 1?且包含?1?到?n - 1?恰好各一次,包含?n? 两次的一个数组)。比方说,base[1] = [1, 1]?,base[3] = [1, 2, 3, 3]?。

如果数组是一个好数组,请你返回?true?,否则返回?false?。

注意:数组的排列是这些数字按任意顺序排布后重新得到的数组。

示例 1:

输入:nums = [2, 1, 3]
输出:false
解释:因为数组的最大元素是 3 ,唯一可以构成这个数组的 base[n] 对应的 n = 3 。但是 base[3] 有 4 个元素,但数组 nums 只有 3 个元素,所以无法得到 base[3] = [1, 2, 3, 3] 的排列,所以答案为 false 。

示例 2:

输入:nums = [1, 3, 3, 2]
输出:true
解释:因为数组的最大元素是 3 ,唯一可以构成这个数组的 base[n] 对应的 n = 3 ,可以看出数组是 base[3] = [1, 2, 3, 3] 的一个排列(交换 nums 中第二个和第四个元素)。所以答案为 true 。

示例 3:

输入:nums = [1, 1]
输出:true
解释:因为数组的最大元素是 1 ,唯一可以构成这个数组的 base[n] 对应的 n = 1,可以看出数组是 base[1] = [1, 1] 的一个排列。所以答案为 true 。

示例 4:

输入:nums = [3, 4, 4, 1, 2, 1]
输出:false
解释:因为数组的最大元素是 4 ,唯一可以构成这个数组的 base[n] 对应的 n = 4 。但是 base[n] 有 5 个元素而 nums 有 6 个元素。所以答案为 false 。

提示:

  • 1 <= nums.length <= 100
  • 1 <= num[i] <= 200

题解:

class Solution(object):
    def isGood(self, nums):
        sort_nums = sorted(nums)
        res = []
        for i in range(1,len(nums)):
            res.append(i)
        res.append(len(nums)-1)
        # res.append(len(nums)-1)
        # print(res,sort_nums)
        if res == sort_nums:
            return True
        return False

文章来源:https://blog.csdn.net/qq_41905051/article/details/135416004
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。