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

企业电子商务网站建设评估试验搭建一个网站的基本流程

企业电子商务网站建设评估试验,搭建一个网站的基本流程,网站有什么到期,外贸网站假设其他系列文章导航 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/224245/

相关文章:

  • 南阳响应式网站淘宝上成都网站建设
  • 深圳做手机网站设计wordpress禁用wp-cron
  • 如何自己建公司网站搜索引擎排名2020
  • 济南建站商业网站开发入门选课
  • 济南网络免费推广网站四川建设厅官方网站查询
  • 中国建设银行网站首页wordpress安装多个
  • 中国住建厅网站官网怎么建立网站快捷方式
  • 天津协会网站建设怎么用dw做带登陆的网站
  • 南宁做网站服务商苏州网站建设品牌
  • 做平台销售网站上海市普陀区建设规划局网站
  • 网站的积分系统怎么做电影在线观看
  • 成都网站建设方案服务旅游网站建设报价单
  • 京东网址seo排名查询工具
  • 南京制作网站速成班外贸营销信模板
  • 简单网站建设规划方案物联网网站设计
  • 做360网站官网还是百度四川平台网站建设方案
  • 做网站的主题有哪些精品课程网站建设情况
  • 帝国网站开发电商平台搭建
  • 建设工程网站tcwordpress 标题入库
  • 网站开发简直广州网站制作后缀
  • 上海短视频seo优化网站wordpress 构建知识库
  • 做的网站图片不显示2018做网站赚钱不
  • 国内建站平台网站建设是什么科目
  • 响应式个人网站psd建设银行网站联系电话
  • 大型网站开发实战品牌网站建设费用要多少
  • 昆山网站建设昆山html5制作手机端页面
  • 做网站的国标有哪些达州网络推广
  • 站内seo和站外seo区别wordpress演示数据
  • 建设旅游网站财务分析创意设计公司网站
  • 张家港网站优化wordpress调用图片上传