当前位置: 首页 > news >正文

自己做网站要学前端和后端如何推广qq群

自己做网站要学前端和后端,如何推广qq群,基于php的网站开发流程图,机关单位网站建设工作方案其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 三、代码 四、复杂度分析 前言 这是力扣的2661题#xff0c;难度为中等#xff0c;解题方案有很多种难度为中等解题方案有很多种本文讲解我认为最奇妙的一种。 一、题目描述 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1m * n] 内的 所有 整数。 从下标 0 开始遍历 arr 中的每个下标 i 并将包含整数 arr[i] 的 mat 单元格涂色。 请你找出 arr 中在 mat 的某一行或某一列上都被涂色且下标最小的元素并返回其下标 i 。 示例 1 输入arr [1,3,4,2], mat [[1,4],[2,3]] 输出2 解释遍历如上图所示arr[2] 在矩阵中的第一行或第二列上都被涂色。示例 2 输入arr [2,8,7,4,1,3,5,6,9], mat [[3,2,5],[1,4,6],[8,7,9]] 输出3 解释遍历如上图所示arr[3] 在矩阵中的第二列上都被涂色。提示 m mat.lengthn mat[i].lengtharr.length m * n1 m, n 1051 m * n 1051 arr[i], mat[r][c] m * narr 中的所有整数 互不相同mat 中的所有整数 互不相同 二、题解 这道题其实是常规哈希表的运用本题也将用 HashMap 来借题。 算法 因为 mat 的值各不相同将用HashMap来存储以mat[i][j]也就是值为键[i,j]也就是坐标为值方便后续快速查询某个值所在位置。然后创建数组 c1 和 c2 分别用来记录某行某列有多少单元格被涂色如 c1[x] a 代表第 x 行被涂色单元格数量为 a 个c2[y] b 代表第 y 列被涂色单元格数量为 b 个。接着遍历所有的 arr[i] 查询到 arr[i] 的所在位置 info 后更新 c1 和 c2若某行或某列被完全涂色返回当前下标。 注意题目的意思是返回刚好涂完一列或一行的时候的最小数字下标。 三、代码 Java版本 class Solution {public int firstCompleteIndex(int[] arr, int[][] mat) {int n mat.length, m mat[0].length;HashMapInteger, int[] map new HashMap();for (int i 0; i n; i) {for (int j 0; j m; j) {map.put(mat[i][j], new int[]{i, j});//mat[i][j]性质等于arr[i]}}int[] c1 new int[n], c2 new int[m];//c1记录某行单元格涂色情况c1记录某列单元格涂色情况for (int i 0; i n * m; i) {int[] info map.get(arr[i]);//info[0]是行坐标[info[1]]是列坐标if (c1[info[0]] m || c2[info[1]] n) {return i;//第一个叠涂完成的一定是最小的元素}}return -1;} } C版本 class Solution { public:int firstCompleteIndex(vectorint arr, vectorvectorint mat) {int n mat.size(), m mat[0].size();unordered_mapint, pairint, int map;for (int i 0; i n; i) {for (int j 0; j m; j) {map[mat[i][j]] make_pair(i, j);}}vectorint c1(n), c2(m);for (int i 0; i n * m; i) {pairint, int info map[arr[i]];if (c1[info.first] m || c2[info.secon] n) return i;}return -1; // never} };Python版本 class Solution:def firstCompleteIndex(self, arr: List[int], mat: List[List[int]]) - int:n, m len(mat), len(mat[0])mapping {mat[i][j]: (i, j) for i in range(n) for j in range(m)}c1, c2 [0] * n, [0] * mfor i in range(n * m):x, y mapping[arr[i]]c1[x], c2[y] c1[x] 1, c2[y] 1if c1[x] m or c2[y] n: return ireturn -1 # never四、复杂度分析 时间复杂度O(n×m)空间复杂度O(n×m)
http://www.zqtcl.cn/news/534204/

相关文章:

  • 美容手机网站模板招标
  • 怎样用虚拟主机建网站访客可以用微信回复wordpress
  • 什么做网站做个网站一般要多少钱啊做网站界面尺寸
  • 装修网站怎样做网站中如何做图片轮播
  • 未备案网站如何加cdn河北网站制作
  • 出版社网站建设方案微信公众号h5网站开发
  • 南京建行网站云主机开网站教程
  • 炫酷表白网站在线制作微网站栏目图标
  • 西安做兼职网站设计昆山做网站的公司有哪些
  • vue手机网站开发买域名价格
  • 济南网站推广优化外包合肥住房和城乡建设部网站
  • 商品定制平台网站江苏港口建设费申报网站
  • 仿站酷网站模板网站建设捌金手指花总六
  • 南通网站建设计划书抖音关键词seo系统
  • 怎么做服务器网站下载链接生产类营销型网站
  • 做网站网站内容怎么找微信公众号免费做影视网站
  • 投资公司网站建设意义做一个网站成本大概多少钱
  • 网站建设的简洁性wordpress积分换购
  • 手机网站赏析做外贸女装有哪些网站有哪些
  • 网站建设与管理考察报告建材网站开发
  • 张家港专业做网站网站点击量 哪里查询
  • 网站设计软件开发论文网站建设的参考文献
  • 专业建筑工程网站陇西做网站的公司
  • 请别人做网站会不会被盗有创意的广告图片及赏析
  • qq官方网站在家有电脑怎么做网站
  • 做计量检定的网站网站建设专业可行性分析
  • 上饶市建设局网站电脑课做网站所需的软件
  • 广州论坛建站模板网站开发流程原理
  • 网站开发深入浅出 - python篇四川网络营销
  • 做外贸比较好用的网站有哪些网站logo教程