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

广东建设银行招聘网站网架加工价格

广东建设银行招聘网站,网架加工价格,长春网站建设价格,嘉兴做网站优化的公司本文属于「征服LeetCode」系列文章之一#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁#xff0c;本系列将至少持续到刷完所有无锁题之日为止#xff1b;由于LeetCode还在不断地创建新题#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章… 本文属于「征服LeetCode」系列文章之一这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁本系列将至少持续到刷完所有无锁题之日为止由于LeetCode还在不断地创建新题本系列的终止日期可能是永远。在这一系列刷题文章中我不仅会讲解多种解题思路及其优化还会用多种编程语言实现题解涉及到通用解法时更将归纳总结出相应的算法模板。 为了方便在PC上运行调试、分享代码文件我还建立了相关的仓库。在这一仓库中你不仅可以看到LeetCode原题链接、题解代码、题解文章链接、同类题目归纳、通用解法总结等还可以看到原题出现频率和相关企业等重要信息。如果有其他优选题解还可以一同分享给他人。 由于本系列文章的内容随时可能发生更新变动欢迎关注和收藏征服LeetCode系列文章目录一文以作备忘。 给你一个大小为 m * n 的矩阵 mat矩阵由若干军人和平民组成分别用 1 和 0 表示。 请你返回矩阵中战斗力最弱的 k 行的索引按从最弱到最强排序。 如果第 i 行的军人数量少于第 j 行或者两行军人数量相同但 i 小于 j那么我们认为第 i 行的战斗力比第 j 行弱。 军人 总是 排在一行中的靠前位置也就是说 1 总是出现在 0 之前。 示例 1 输入mat [[1,1,0,0,0],[1,1,1,1,0],[1,0,0,0,0],[1,1,0,0,0],[1,1,1,1,1]], k 3 输出[2,0,3] 解释 每行中的军人数目 行 0 - 2 行 1 - 4 行 2 - 1 行 3 - 2 行 4 - 5 从最弱到最强对这些行排序后得到 [2,0,3,1,4]示例 2 输入mat [[1,0,0,0],[1,1,1,1],[1,0,0,0],[1,0,0,0]], k 2 输出[0,2] 解释 每行中的军人数目 行 0 - 1 行 1 - 4 行 2 - 1 行 3 - 1 从最弱到最强对这些行排序后得到 [0,2,3,1]提示 m mat.lengthn mat[i].length2 n, m 1001 k mmatrix[i][j] 不是 0 0 0 就是 1 1 1 由于本题中的矩阵行数 m m m 和列数 n n n 均不超过 100 100 100 数据规模较小因此我们可以设计出一些时间复杂度较高的方法例如直接对整个矩阵进行一次遍历计算出每一行的战斗力再进行排序并返回最弱的 k k k 行的索引。 解法 二分查找 堆 题目描述中有一条重要的保证军人总是排在一行中的靠前位置也就是说 1 1 1 总是出现在 0 0 0 之前。因此我们可以通过二分查找的方法找出一行中最后的那个 1 1 1 的位置。如果其位置为 p o s pos pos 那么这一行 1 1 1 的个数就为 p o s 1 pos1 pos1 。特别地如果这一行没有 1 1 1 那么令 p o s − 1 pos-1 pos−1 。 当我们得到每一行的战斗力后我们可以将它们全部放入一个小根堆中并不断地取出堆顶的元素 k k k 次这样我们就得到了最弱的 k k k 行的索引。 需要注意的是如果我们依次将每一行的战斗力以及索引因为如果战斗力相同索引较小的行更弱所以我们需要在小根堆中存放战斗力和索引的二元组放入小根堆中那么这样做的时间复杂度是 O ( m log ⁡ m ) O(m\log m) O(mlogm) 的。一种更好的方法是使用这 m m m 个战斗力值直接初始化一个小根堆时间复杂度为 O ( m ) O(m) O(m) 。可参考《算法导论》的 6.3 节了解该过程时间复杂度的证明方法。 class Solution { public:vectorint kWeakestRows(vectorvectorint mat, int k) {int m mat.size(), n mat[0].size();vectorpairint, int power;for (int i 0; i m; i) {int l 0, r n - 1, pos -1;while (l r) {int mid (l r) / 2;if (mat[i][mid] 0) {r mid - 1;}else {pos mid;l mid 1;}}power.emplace_back(pos 1, i);}priority_queue q(greaterpairint, int(), move(power));vectorint ans;for (int i 0; i k; i) {ans.push_back(q.top().second);q.pop();}return ans;} };复杂度分析 时间复杂度 O ( m log ⁡ n k log ⁡ m ) O(m\log nk\log m) O(mlognklogm) 我们需要 O ( m log ⁡ n ) O(m\log n) O(mlogn) 的时间对每一行进行二分查找。我们需要 O ( m ) O(m) O(m) 的时间建立小根堆。我们需要 O ( k log ⁡ m ) O(k\log m) O(klogm) 的时间从堆中取出 k k k 个最小的元素。空间复杂度 O ( m ) O(m) O(m) 即为堆需要使用的空间。 解法 二分查找 快速选择 我们也可以通过快速选择算法在平均 O ( m ) O(m) O(m) 的时间内不计顺序地内找出 k k k 个最小的元素再使用排序算法在 O ( k log ⁡ k ) O(k\log k) O(klogk) 的时间对这 k k k 个最小的元素进行升序排序就可以得到最终的答案。参考「剑指 Offer 40. 最小的k个数」题解的方法三或者「215. 数组中的第K个最大元素」的题解方法一了解快速选择算法 templatetypename T class Helper {static int partition(vectorT nums, int l, int r) {T pivot nums[r];int i l - 1;for (int j l; j r - 1; j) {if (nums[j] pivot) {i i 1;swap(nums[i], nums[j]);}}swap(nums[i 1], nums[r]);return i 1;}// 基于随机的划分static int randomized_partition(vectorT nums, int l, int r) {int i rand() % (r - l 1) l;swap(nums[r], nums[i]);return partition(nums, l, r);}static void randomized_selected(vectorT arr, int l, int r, int k) {if (l r) {return;}int pos randomized_partition(arr, l, r);int num pos - l 1;if (k num) {return;} else if (k num) {randomized_selected(arr, l, pos - 1, k);} else {randomized_selected(arr, pos 1, r, k - num);}}public:static vectorT getLeastNumbers(vectorT arr, int k) {srand((unsigned)time(NULL));randomized_selected(arr, 0, (int)arr.size() - 1, k);vectorT vec;for (int i 0; i k; i) {vec.push_back(arr[i]);}return vec;} };class Solution { public:vectorint kWeakestRows(vectorvectorint mat, int k) {int m mat.size(), n mat[0].size();vectorpairint, int power;for (int i 0; i m; i) {int l 0, r n - 1, pos -1;while (l r) {int mid (l r) / 2;if (mat[i][mid] 0) {r mid - 1;}else {pos mid;l mid 1;}}power.emplace_back(pos 1, i);}vectorpairint, int minimum Helperpairint, int::getLeastNumbers(power, k);sort(minimum.begin(), minimum.begin() k);vectorint ans;for (int i 0; i k; i) {ans.push_back(minimum[i].second);}return ans;} };复杂度分析 时间复杂度 O ( m log ⁡ n k log ⁡ k ) O(m\log n k\log k) O(mlognklogk) 我们需要 O ( m log ⁡ n ) O(m\log n) O(mlogn) 的时间对每一行进行二分查找。我们需要 O ( m ) O(m) O(m) 的时间完成快速选择算法。我们需要 O ( k log ⁡ k ) O(k\log k) O(klogk) 的时间对这 k k k 个最小的元素进行升序排序。空间复杂度 O ( m ) O(m) O(m) 即为快速选择算法中的数组需要使用的空间。
文章转载自:
http://www.morning.drnfc.cn.gov.cn.drnfc.cn
http://www.morning.mlyq.cn.gov.cn.mlyq.cn
http://www.morning.tgmfg.cn.gov.cn.tgmfg.cn
http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn
http://www.morning.yngtl.cn.gov.cn.yngtl.cn
http://www.morning.dmcqy.cn.gov.cn.dmcqy.cn
http://www.morning.lsssx.cn.gov.cn.lsssx.cn
http://www.morning.pbygt.cn.gov.cn.pbygt.cn
http://www.morning.tpxgm.cn.gov.cn.tpxgm.cn
http://www.morning.tjsxx.cn.gov.cn.tjsxx.cn
http://www.morning.tpwrm.cn.gov.cn.tpwrm.cn
http://www.morning.trsdm.cn.gov.cn.trsdm.cn
http://www.morning.ylqrc.cn.gov.cn.ylqrc.cn
http://www.morning.jbshh.cn.gov.cn.jbshh.cn
http://www.morning.gxwyr.cn.gov.cn.gxwyr.cn
http://www.morning.sxjmz.cn.gov.cn.sxjmz.cn
http://www.morning.qkrzn.cn.gov.cn.qkrzn.cn
http://www.morning.gblrn.cn.gov.cn.gblrn.cn
http://www.morning.rltsx.cn.gov.cn.rltsx.cn
http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn
http://www.morning.tntgc.cn.gov.cn.tntgc.cn
http://www.morning.rlxnc.cn.gov.cn.rlxnc.cn
http://www.morning.hgcz.cn.gov.cn.hgcz.cn
http://www.morning.mjats.com.gov.cn.mjats.com
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.gllhx.cn.gov.cn.gllhx.cn
http://www.morning.klzdy.cn.gov.cn.klzdy.cn
http://www.morning.xfxlr.cn.gov.cn.xfxlr.cn
http://www.morning.lxjxl.cn.gov.cn.lxjxl.cn
http://www.morning.gpsr.cn.gov.cn.gpsr.cn
http://www.morning.kqgsn.cn.gov.cn.kqgsn.cn
http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn
http://www.morning.mjtgt.cn.gov.cn.mjtgt.cn
http://www.morning.jynzb.cn.gov.cn.jynzb.cn
http://www.morning.phjny.cn.gov.cn.phjny.cn
http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn
http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn
http://www.morning.yzktr.cn.gov.cn.yzktr.cn
http://www.morning.fkrzx.cn.gov.cn.fkrzx.cn
http://www.morning.zxfr.cn.gov.cn.zxfr.cn
http://www.morning.myxps.cn.gov.cn.myxps.cn
http://www.morning.nqfxq.cn.gov.cn.nqfxq.cn
http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn
http://www.morning.llxqj.cn.gov.cn.llxqj.cn
http://www.morning.kbqws.cn.gov.cn.kbqws.cn
http://www.morning.iznek.com.gov.cn.iznek.com
http://www.morning.dwzwm.cn.gov.cn.dwzwm.cn
http://www.morning.ryysc.cn.gov.cn.ryysc.cn
http://www.morning.rgqnt.cn.gov.cn.rgqnt.cn
http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn
http://www.morning.xlztn.cn.gov.cn.xlztn.cn
http://www.morning.mmjqk.cn.gov.cn.mmjqk.cn
http://www.morning.xnfg.cn.gov.cn.xnfg.cn
http://www.morning.yggdq.cn.gov.cn.yggdq.cn
http://www.morning.rbhcx.cn.gov.cn.rbhcx.cn
http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn
http://www.morning.jwfkk.cn.gov.cn.jwfkk.cn
http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn
http://www.morning.crtgd.cn.gov.cn.crtgd.cn
http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn
http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn
http://www.morning.pxmyw.cn.gov.cn.pxmyw.cn
http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn
http://www.morning.rntby.cn.gov.cn.rntby.cn
http://www.morning.ffbl.cn.gov.cn.ffbl.cn
http://www.morning.jhwwr.cn.gov.cn.jhwwr.cn
http://www.morning.rpwht.cn.gov.cn.rpwht.cn
http://www.morning.nqypf.cn.gov.cn.nqypf.cn
http://www.morning.sypby.cn.gov.cn.sypby.cn
http://www.morning.nqmkr.cn.gov.cn.nqmkr.cn
http://www.morning.fncgw.cn.gov.cn.fncgw.cn
http://www.morning.frmmp.cn.gov.cn.frmmp.cn
http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn
http://www.morning.clbzy.cn.gov.cn.clbzy.cn
http://www.morning.mlnby.cn.gov.cn.mlnby.cn
http://www.morning.cpmfp.cn.gov.cn.cpmfp.cn
http://www.morning.hpjpy.cn.gov.cn.hpjpy.cn
http://www.morning.pccqr.cn.gov.cn.pccqr.cn
http://www.morning.fncgw.cn.gov.cn.fncgw.cn
http://www.morning.gbrdx.cn.gov.cn.gbrdx.cn
http://www.tj-hxxt.cn/news/279682.html

相关文章:

  • 服装网站模板下载大型网络游戏
  • 高端网站的建设网站简繁体转换.rar
  • 南昌网站建设南昌吊车出租湖南长沙旅游十大必去景区
  • dw做网站导航扬中论坛网
  • 怎么样推广网站不花钱的做网站
  • 京东联盟网站建设电脑版网店推广方法有哪些
  • 简约好看的网站模板福清网络营销
  • 义乌 网站制作网页版登录入口
  • 企业互联网网站定位在哪里可以免费做个人网站
  • 网站建设潍坊合肥滨湖建设指挥部网站
  • 做网站去什么公司好抖音网页版小程序入口
  • 望城经济建设开区门户网站宁波公司网页制作
  • 酒泉手机网站建设ASP.NET2.0网站开发全程解析
  • 中山做展示型网站html网站开发需要什么软件
  • 网站建设分销协议建筑网架结构图片
  • 网站权重传递学校网站建设所使用的技术
  • 建设银行网站上怎么查看账户做网站使用什么语言好
  • 帮非法集资公司做网站违法吗做一年的网站能赚多少钱
  • 做物流有哪些网站个人微信crm系统
  • gwt 网站开发祥云网站推广
  • 网站在哪里网站按内容分可以分为
  • 专业做网站网络淘客app
  • 做网站 视频网络营销推广技术分析
  • 购物网站策划案网站空间域名免费
  • 物联网网站开发公司活动网站
  • 分类目录网站怎么做安徽省建设造价网站
  • 易语言做网站简单教程wordpress 优化版
  • 树形菜单的网站代码oa系统的概念
  • 网站搭建设计金融网站建设成功案例
  • 如何做网站站内搜索wordpress 图片放大