首页 > 其他分享 >2661. 找出叠涂元素

2661. 找出叠涂元素

时间:2023-12-01 16:26:02浏览次数:34  
标签:叠涂 找出 mat int 元素 arr ++ length 2661

2661. 找出叠涂元素

2023年12月1日

逆天题目描述,模拟一下就完事了。

大致意思和思路

遍历\(arr\)数组,然后再\(mat\)矩阵中将对应的数涂色。

如果当遍历到第\(i\)个元素时,判断\(mat\)矩阵中对应的元素,如果该元素所在的行或者所在的列的数都被涂色了,就返回\(i\)。

模拟一下就可以了,记录行和列的操作,再把arr元素对应的行列信息保存一下,行列二维转一维即可。

代码

class Solution {

  public int firstCompleteIndex(int[] arr, int[][] mat) {
    int n = mat.length;
    int m = mat[0].length;
    int[] x = new int[n];
    int[] y = new int[m];
    int[] dmp = new int[arr.length + 1];
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
        dmp[mat[i][j]] = i * m + j;
      }
    }
    int cnt = 0;
    for (int i = 0; i < arr.length; i++) {
      int xx = dmp[arr[i]] / m;
      int yy = dmp[arr[i]] % m;
      x[xx]++;
      y[yy]++;
      if (x[xx] == m || y[yy] == n) {
        cnt = i;
        break;
      }
    }
    return cnt;
  }
}

标签:叠涂,找出,mat,int,元素,arr,++,length,2661
From: https://www.cnblogs.com/CrossAutomaton/p/17869942.html

相关文章

  • 给定两个列表,找出他们相同的元素和不同的元素
    list1=[11,22,33,11]list2=[11,22,89,45]A=set(list1)#先去重B=set(list2)print(A&B)#相同的元素print(A^B)#不同的元素 ......
  • 小技巧分享 - 找出 SAP ABAP SPRO 配置项后台对应配置表的两种办法试读版
    相信SPRO是广大ABAP开发人员每天使用频次最高的事务码之一了吧。毕竟SAP软件的复杂度摆在那里,无论是SAPOn-Premise产品,还是Cloud产品,在安装或者订阅之后,都要根据客户实际的业务需求,对SAP系统进行配置。在On-Premise系统里,事务码SPRO就是统一的配置入口。SPRO......
  • 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整
    示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]用数组的indexOf()方法来查找值vartowSum=function(nums,target){for(leti=0,len=nums.length;i<len;i++){if(nums.indexOf(target-nums[i])>-1......
  • 找出一个字符串中出现次数最多的一个字符 找出重复签到的同学
    7-2找出一个字符串中出现次数最多的一个字符找出一个字符串中出现次数最多的一个字符。输入格式:给出一个字符串,字符串的长度不大于10^6,不区分大小写,字符串中可能包含'A'-'Z','a'-'z',''字符。输出格式:分别输出出现最多次数的字符(如果为字母,输出小写字母),出现的次数,用......
  • 28. 找出字符串中第一个匹配项的下标 2
    2023-11-1328.找出字符串中第一个匹配项的下标-力扣(LeetCode)思路2:kmp算法-》求字符串的最大前后缀长度问题classSolution{publicintstrStr(Stringhaystack,Stringneedle){//暴力法//双指针//kmp算法//kmpint......
  • 28. 找出字符串中第一个匹配项的下标 1
    2023-11-1228.找出字符串中第一个匹配项的下标-力扣(LeetCode)思路:    1暴力法    2双指针法    3更多思路看2classSolution{publicintstrStr(Stringhaystack,Stringneedle){//暴力法//双指针//双......
  • 【竞赛题】找出强数对的最大异或值 I
    1题目: 给你一个下标从0开始的整数数组nums。如果一对整数x和y满足以下条件,则称其为强数对:|x-y|<=min(x,y)你需要从nums中选出两个整数,且满足:这两个整数可以形成一个强数对,并且它们的按位异或(XOR)值是在该数组所有强数对中的最大值。返回数组nums所有可能的强......
  • 牛客[编程题] HJ59 找出字符串中第一个只出现一次的字符
    HJ59找出字符串中第一个只出现一次的字符中等  通过率:32.27%  时间限制:1秒  空间限制:32M 描述找出字符串中第一个只出现一次的字符  数据范围:输入的字符串长度满足 1\len\le1000\1≤n≤1000  输入描述:输入一个非空字符串输出描述:输出......
  • Oracle找出所有表字段中值包含中文并生成扩充字段的SQL脚本
     Oracle找出所有表字段中值包含中文并生成扩充字段的SQL脚本 背景后续计划将Oracle的某个库迁移到云上的达梦库,Oracle字符集为ZHS16GBK,达梦库字符集为UTF-8。我们知道,中文汉字在UTF8中一个汉字占3个字节,而在GBK中则是占2个字节,测试过程发现若字段中存有中文的行,有可能在达......
  • 用if和else语句找出四个数中最大的那一个
    #include<stdio.h>intmain(){   inta,b,c,d,m,fmax;    printf("请输入四个数:");    scanf_s("%d%d%d%d",&a,&b,&c,&d);    if(a<b)    {      if(b<c)        ......