3011.判断一个数组是否可以变为有序
链接:3011.判断一个数组是否可以变为有序
难度:Medium
标签:位运算、数组、排序
简介:如果你可以使数组变有序,请你返回 true ,否则返回 false 。
题解 1 - python
- 编辑时间:2024-07-13
- 执行用时:50ms
- 内存消耗:16.34MB
- 编程语言:python
- 解法介绍:遍历。
class Solution:
    def canSortArray(self, nums: List[int]) -> bool:
        get = lambda num: bin(num).count('1')
        res = []
        cnt1 = -1
        arr = []
        for num in nums:
            if cnt1 != get(num):
                cnt1 = get(num)
                res += sorted(arr)
                arr.clear()
            arr.append(num)
        res += sorted(arr)
        return all(res[i] <= res[i + 1] for i in range(len(res) - 1))