02. 完成一半题目

LCS 02. 完成一半题目 #

题目 #

  • N 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 2*N 道题目,整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。 若每位扣友选择不同的一题,请返回被选的 N 道题目至少包含多少种知识点类型。

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public int halfQuestions(int[] questions) {
        int[] cnt = new int[1001];
        for (int question: questions) cnt[question]--;
        Arrays.sort(cnt);
        int ans = 0, remain = questions.length / 2;
        for (int i = 0; i < cnt.length; i++) {
            ans++;
            if (-cnt[i] >= remain) return ans;
            remain += cnt[i];
        }
        return ans;
    }
}

致谢 #

慢慢来比较快