列表

详情


2229. 检查数组是否连贯

给你一个整数数组 nums ,如果 nums 是一个 连贯数组 ,则返回 true ,否则返回 false

如果数组包含 [x, x + n - 1] 范围内的所有数字(包括 xx + n - 1 ),则该数组为连贯数组;其中 x 是数组中最小的数,n 是数组的长度。

 

示例 1:

输入:nums = [1,3,4,2]
输出:true
解释:
最小值是 1 ,数组长度为 4 。
范围 [x, x + n - 1] 中的所有值都出现在 nums 中:[1, 1 + 4 - 1] = [1, 4] = (1, 2, 3, 4) 。
因此,nums 是一个连贯数组。

示例 2:

输入:nums = [1,3]
输出:false
解释:
最小值是 1 ,数组长度为 2 。 
范围 [x, x + n - 1] 中的所有值没有都出现在 nums 中:[1, 1 + 2 - 1] = [1, 2] = (1, 2) 。 
因此,nums 不是一个连贯数组。 

示例 3:

输入:nums = [3,5,4]
输出:true
解释:
最小值是 3 ,数组长度为 3 。
范围 [x, x + n - 1] 中的所有值都出现在 nums 中:[3, 3 + 3 - 1] = [3, 5] = (3,4,5) 。
因此,nums 是一个连贯数组。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool isConsecutive(vector<int>& nums) { } };

java 解法, 执行用时: 15 ms, 内存消耗: 56.9 MB, 提交时间: 2023-10-15 18:12:53

class Solution {
    public boolean isConsecutive(int[] nums) {
        int min=nums[0];
        int max=nums[0];
        Set<Integer>set=new HashSet<>();
        for(int num:nums){
            if(set.contains(num)){
                return false;
            }
            set.add(num);
            if(min>num){
                min=num;
            }
            if(max<num){
                max=num;
            }
        }
        return (max-min+1)==nums.length;
    }
}

python3 解法, 执行用时: 60 ms, 内存消耗: 31.2 MB, 提交时间: 2023-10-15 18:12:13

class Solution:
    def isConsecutive(self, nums: List[int]) -> bool:
        return max(nums) - min(nums) + 1 == len(nums) and len(set(nums)) == len(nums)

golang 解法, 执行用时: 124 ms, 内存消耗: 8.1 MB, 提交时间: 2023-10-15 18:11:52

func isConsecutive(nums []int) bool {
 	sort.Ints(nums)
    for i := 1; i < len(nums); i++ {
		if nums[i] != nums[i-1]+1 {
			return false
		}
	}
	return true
}


func isConsecutive2(nums []int) bool {
	min := nums[0]
	for i := 0; i < len(nums); i++ {
		if nums[i] < min {
			min = nums[i]
		}
	}
	for i := 0; i < len(nums); i++ {
		for nums[i]-min != i {
			if nums[i]-min >= len(nums) || nums[i] == nums[nums[i]-min]{
				return false
			}
			nums[i],nums[nums[i]-min] = nums[nums[i]-min],nums[i]
		}
	}
	return true
}

上一题