weekly contest 453。

題目

https://leetcode.com/problems/transform-array-to-all-equal-elements/description/

解法

只有改成 1 或是 -1 兩種可能。
枚舉兩種可能,看能不能改。

時間複雜度 O(N)。
空間複雜度 O(N)。

class Solution:
    def canMakeEqual(self, nums: List[int], k: int) -> bool:
        N = len(nums)

        def ok(t):
            a = nums.copy()
            cnt = 0
            for i in range(N-1):
                if a[i] != t:
                    a[i] *= -1
                    a[i+1] *= -1
                    cnt += 1
            return a[-1] == t and cnt <= k
                    
        return ok(1) or ok(-1)