思路
统计每个数字出现的次数,计算每个数字的操作次数,将所有操作次数累加返回即可
解题过程
对于每个数字(假设出现次数num),如果num等于1,返回-1;如果num%3等于0,返回num/3;如果num%3不等于0,返回num/3+1
Code
class Solution {public int minOperations(int[] nums) {int n=nums.length;Arrays.sort(nums);int max=nums[n-1];int arr[]=new int[max+1];for(int i=0;i<n;i++){arr[nums[i]]++;}int ans=0;for(int i=1;i<max+1;i++){if(arr[i]==0) continue;else if(arr[i]==1) return -1;else{if(arr[i]%3==0) ans+=arr[i]/3;else{ans+=arr[i]/3+1;}}}return ans;}
}作者:菜卷
链接:https://leetcode.cn/problems/minimum-number-of-operations-to-make-array-empty/solutions/3012148/shi-shu-zu-wei-kong-de-zui-shao-cao-zuo-7zczi/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。