zoukankan      html  css  js  c++  java
  • leetcode 随便刷刷题

    minimum-number-of-people-to-teach

    https://leetcode-cn.com/problems/minimum-number-of-people-to-teach/

    一开始感觉像是并查集,,,,但是感觉也没有办法冰茶,,,,,

    贪心算法:先找出所有没有共同语言的好友,然后统计出这些人里用的最多的语言
    用人数-语言数即答案

    为啥说这是个贪心呢,因为人数最多的语言,必然是需要最少的人学会的

    class Solution {
    public:
        bool is_com(vector<vector<int>>& languages,int i,int j){
            vector<int> lan1=languages[i-1];
            vector<int> lan2=languages[j-1];
            int size1=lan1.size();
            int size2=lan2.size();
            for (int k = 0; k < size1; ++k) {
                for (int l = 0; l < size2; ++l) {
                    if (lan1[k] == lan2[l])
                        return true;
    
                }
            }
            return false;
        }
        int minimumTeachings(int n, vector<vector<int>>& languages, vector<vector<int>>& friendships) {
            unordered_map<int,int> mp1;
            unordered_map<int ,int> mp2;
            int len=friendships.size();
            for (int i = 0; i < len; ++i) {
                if(!is_com(languages,friendships[i][0],friendships[i][1])){
                    mp1[friendships[i][0]]++;
                    mp1[friendships[i][1]]++;
                }
            }
            for(auto p:mp1){
                for(auto lan:languages[p.first-1]){
                    mp2[lan]++;
                }
            }
            int most=0;
            for(auto l:mp2){
                most=max(most,l.second);
            }
            int si=mp1.size();
            int ans=si-most;
            return ans;
    
        }
    };
    
    为了自己,和那些爱你的人
  • 相关阅读:
    取最小未用的账号
    Oracle 同义词
    RMAN备份报 RMAN-06059 错误
    Oracle11g memory_target
    基础记录
    uboot启动流程
    android有关生命周期探讨
    can协议
    java虚拟机
    内存管理机制
  • 原文地址:https://www.cnblogs.com/zhmlzhml/p/14491062.html
Copyright © 2011-2022 走看看