- Leetcode 3634. Minimum Removals to Balance Array
- 1. 解題思路
- 2. 代碼實現
- 題目鏈接:3634. Minimum Removals to Balance Array
1. 解題思路
這一題思路上就是一個滑動窗口的思路。
我們首先將整個數組有序排列,然后分別從左向右考察每一個元素作為初始元素時,其右側邊界的位置,其兩側丟棄的元素即為要刪除的元素,遍歷一輪數組然后取出最小值即為最終的答案。
2. 代碼實現
給出python代碼實現如下:
class Solution:def minRemoval(self, nums: List[int], k: int) -> int:nums = sorted(nums)n = len(nums)l, r = 0, 0ans = nwhile r < n:limit = nums[l] * kwhile r < n and nums[r] <= limit:r += 1ans = min(ans, n-r+l)l += 1return ans
提交代碼評測得到:耗時115ms,占用內存29.16MB。