不同整数的最少数目
给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目。
示例 1:
输入:arr = [5,5,4], k = 1
输出:1
解释:移除 1 个 4 ,数组中只剩下 5 一种整数。
示例 2:
输入:arr = [4,3,1,1,3,3,2], k = 3
输出:2
解释:先移除 4、2 ,然后再移除两个 1 中的任意 1 个或者三个 3 中的任意 1 个,最后剩下 1 和 3 两种整数。
/*** @param {number[]} arr* @param {number} k* @return {number}*/var findLeastNumOfUniqueInts = function(arr, k) {let obj= {}for(let i = 0; i < arr.length; i++){if(obj[arr[i]]){obj[arr[i]]++}else{obj[arr[i]] = 1}}console.log(obj)let main = Object.values(obj).sort((a,b) =>{return a-b})// main.forEach(item =>{// k -= item// if(k >= 0){// for(let key in obj){// if(obj[key] == item){// delete obj[key]// break// }// }// }// })for(var i=0; i<main.length; i++){k-=main[i];if(k>=0){for(var key in obj){if(obj[key]==main[i]){delete obj[key];break;}}}else if(k<0){break;}}return Object.keys(obj).length};
