本文介绍: 【LeetCode】每日一题 2023_12_1 找出叠涂元素(读题/数组/哈希

刷题前唠嗑


LeetCode启动!!!

新的一个月开始啦!这个月也要继续蝉联月度刷题

题目:找出叠涂元素

题目链接2661. 找出叠涂元素

题目描述

代码解题思路

func firstCompleteIndex(arr []int, mat [][]int) int {
    mp := map[int][2]int{}
    n, m := len(mat), len(mat[0])
    for i := 0; i < n; i++ {
        for j := 0; j < m; j++ {
            // mp 存的键值对是 arr 数组的值 : 在 mat对应下标
            mp[mat[i][j]] = [2]int{i, j} 
        }
    }
    rowCnt, colCnt := make([]int, n), make([]int, m)
    for i, v := range arr {
        t := mp[v]
        rowCnt[t[0]]++
        colCnt[t[1]]++
        // 只要有一行或者一列填满了, 就直接返回 arr 下标
        if rowCnt[t[0]] == m || colCnt[t[1]] == n {
            return i
        }
    }
    return -1
}

读懂题意:

题目arr 数组中的值填充 mat

只要有一行或者一列满了就算达成题目条件,直接返回当前 arr下标

解题步骤

  1. 一个 maparr 数组的值 : 在 mat 中对应下标 这个键值对
  2. 然后数组 rowCnt 代表一列,数组 colCnt 代表一行
  3. 遍历 arr填充一行或一列之后直接返回 arr 下标即可

举个例子

题目给的样例 1,arr 遍历到 1 了,那 rowCnt 代表列中第一行填充数量+1,colCnt 代表的的一行中,第一列的填充数量+1

arr 遍历到 3 了,rowCnt 代表的列中的第二行填充数量+1,colCnt 代表的的一行中,第二列的填充数量+1

arr 遍历到 4 了,rowCnt 代表的列中的第一行填充数量+1,这一行填满了,所以直接返回 arr 的下标

结语

周五了,嘿嘿,明天周末放假

原文地址:https://blog.csdn.net/Locky136/article/details/134726908

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26814.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注