首页 > 其他分享 >100313. 所有球里面不同颜色的数目

100313. 所有球里面不同颜色的数目

时间:2024-05-27 09:21:55浏览次数:23  
标签:map 颜色 idx color colors queries 数目 100313

题目描述

给你一个整数 limit 和一个大小为 n x 2 的二维数组 queries 。

总共有 limit + 1 个球,每个球的编号为 [0, limit] 中一个 互不相同 的数字。一开始,所有球都没有颜色。queries 中每次操作的格式为 [x, y] ,你需要将球 x 染上颜色 y 。每次操作之后,你需要求出所有球中 不同 颜色的数目。

请你返回一个长度为 n 的数组 result ,其中 result[i] 是第 i 次操作以后不同颜色的数目。

注意 ,没有染色的球不算作一种颜色。

思路

见注释

代码

class Solution {
public:
    vector<int> queryResults(int limit, vector<vector<int>>& queries) { 
        vector<int> result;
        
        unordered_map<int,int> map;  //存储球的编号和颜色
        unordered_map<int,int> colors;  //存储颜色的数量
        
        for(int i = 0;i < queries.size();i++){  //初始化
            colors[queries[i][1]] = 0;
            map[queries[i][0]] = 0;
        }

        int count = 0;
              
        for(int i = 0;i < queries.size();i++){
        //任何情况下,给一个球染色,该球的颜色置为color,该颜色的数量增加
            int idx = queries[i][0];
            int color = queries[i][1];
            
            if(map[idx] == 0 && colors[color] == 0){
           //给一个未染过色的球染上新的颜色,不同颜色球的数量增加
                count++;
                map[idx] = color;
                colors[color]++;
            }else if(map[idx] == 0){
           //给一个未染过色的球染上已经存在的颜色,不同颜色球的数量不会增加
                map[idx] = color;
                colors[color]++;
            }else if(colors[color] != 0 && map[idx] != color){
            //给一个染过色的球染上已经存在的颜色,球原有的颜色数量减少,如果减至0,那么存在的颜色会少一种,不同颜色球的数量会减少
                colors[map[idx]]--;
                if(colors[map[idx]] == 0){
                    count--;
                }
                colors[color]++;
                map[idx] = color;
            }else if(colors[color] == 0){
          //给一个染过色的球染上新的颜色,球原有的颜色数量减少,如果减至0,旧颜色少一种,新颜色多一种,不同颜色球的数量不变。否则,不同颜色球的数量会增加
                colors[color]++;
                colors[map[idx]]--;
                if(colors[map[idx]] != 0){
                    count++;
                }
                map[idx] = color;
            }
          //染完色后存储不同球颜色的数量
            result.push_back(count);
        }
        return result;
    }
};

标签:map,颜色,idx,color,colors,queries,数目,100313
From: https://www.cnblogs.com/EavenWang/p/18214814

相关文章

  • 通过K-means提取图片主颜色
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、基本流程是什么?二、使用步骤1.引入库2.从图像中提取主要颜色,并生成十六进制颜色列表3.生成颜色簇的直方图4.生成颜色分布的饼图,并保存或显示5.将颜色数据保存到Excel文件中6.批量处理文件......
  • 【源码翻译之交互式对象包 AIS-AIS_ColoredShape.hxx文件 多颜色交互式对象
    类AIS_ColoredShape形状的呈现具有可自定义的子形状属性。此类可以将topods的子拓扑分别设置不同的颜色然后作为一个整体显示成员类型定义文档◆DataMapOfDrawerCompdtypedefNCollection_IndexedDataMap<Handle<AIS_ColoredDrawer>,TopoDS_Compound,TColStd_MapT......
  • 每日一练——颜色分类(快慢指针排序)
    目录题目代码分析案例模拟重难点分析自检复习 题目75.颜色分类-力扣(LeetCode)代码//交换函数,交换指针a和指针b指向的整数voidswap(int*a,int*b){intt=*a;*a=*b;*b=t;}voidsortColors(int*nums,intnumsSize){//双指针......
  • 【瞎写】熊是什么颜色的?
    网上流传着一个这样的地理题:一个探险家在野外扎了顶帐篷,之后他往南走了10公里,往西走了10公里,再往北走了10公里后,发现有一头熊在撕扯他的帐篷。问这头熊是什么颜色的?答案大家都能猜到,探险家的帐篷在北极,因此这头熊是白色。这是因为,一般情况下,如果走的路径不是一个闭合的路线,是不......
  • antd 的 ProTable 通过rowClassName 设置行的字体颜色时,固定列fixed不生效的问题
    1、其他列是已经生效了,但是固定列是没有生效的 constrowClassName=(record)=>{returntableTreeSearchKey.includes(record.key)?'selected-row':'';};<ProTable ...... rowClassName={rowClassName}> 2、分析原因:固定列的子组件也有color属性,覆盖......
  • 填涂颜色
    传送锚点:https://www.luogu.com.cn/problem/P1162血色先锋队题目描述由数字\(0\)组成的方阵中,有一任意形状的由数字\(1\)构成的闭合圈。现要求把闭合圈内的所有空间都填写成\(2\)。例如:\(6\times6\)的方阵(\(n=6\)),涂色前和涂色后的方阵如下:如果从某个\(0\)出发,只向上下......
  • .bashrc 给文件夹添加颜色
    .bashrc给文件夹添加颜色#~/.bashrc:executedbybash(1)fornon-loginshells.#see/usr/share/doc/bash/examples/startup-files(inthepackagebash-doc)#forexamples#Ifnotrunninginteractively,don'tdoanything[-z"$PS1"]&&r......
  • POI 重叠、并列柱状图(条形图),显示数据,自定义颜色
    1、pom.xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifac......
  • 【图像处理】使用matplotlib库显示灰度图像为自定义颜色(2)
    在下面的代码中,facies_img的值只有[0,1,2]表明图像是灰度图像。通过下面的代码可以让图像显示为彩色图像importmatplotlib.pyplotaspltimportmatplotlib.colorsasmcolorsfromPILimportImageimportosimportrandomimportnumpyasnp#路径设置data_dir='data......
  • Linux 中 awk一句某一列来拆分数目
      001、直接拆分[root@PC1test2]#lsoutcome.map[root@PC1test2]#catoutcome.map##准备一个测试文件,依据第一列来拆分文件1snp10559101snp20852041snp301229482snp40......