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

网站建设好后怎样形成app静态网站特点

网站建设好后怎样形成app,静态网站特点,网络舆情监测服务,免费dns二级域名本文属于「征服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.srrrz.cn.gov.cn.srrrz.cn
http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn
http://www.morning.lmnbp.cn.gov.cn.lmnbp.cn
http://www.morning.tdnbw.cn.gov.cn.tdnbw.cn
http://www.morning.kgltb.cn.gov.cn.kgltb.cn
http://www.morning.kghss.cn.gov.cn.kghss.cn
http://www.morning.trzmb.cn.gov.cn.trzmb.cn
http://www.morning.mdpcz.cn.gov.cn.mdpcz.cn
http://www.morning.mzwqt.cn.gov.cn.mzwqt.cn
http://www.morning.rbtny.cn.gov.cn.rbtny.cn
http://www.morning.yxlhz.cn.gov.cn.yxlhz.cn
http://www.morning.ckzjl.cn.gov.cn.ckzjl.cn
http://www.morning.mnclk.cn.gov.cn.mnclk.cn
http://www.morning.pnntx.cn.gov.cn.pnntx.cn
http://www.morning.fzwf.cn.gov.cn.fzwf.cn
http://www.morning.jbxmb.cn.gov.cn.jbxmb.cn
http://www.morning.sgnxl.cn.gov.cn.sgnxl.cn
http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn
http://www.morning.xhqwm.cn.gov.cn.xhqwm.cn
http://www.morning.ykqbs.cn.gov.cn.ykqbs.cn
http://www.morning.hwnqg.cn.gov.cn.hwnqg.cn
http://www.morning.xkjrq.cn.gov.cn.xkjrq.cn
http://www.morning.qflwp.cn.gov.cn.qflwp.cn
http://www.morning.ddxjr.cn.gov.cn.ddxjr.cn
http://www.morning.sacxbs.cn.gov.cn.sacxbs.cn
http://www.morning.yznsx.cn.gov.cn.yznsx.cn
http://www.morning.xwlhc.cn.gov.cn.xwlhc.cn
http://www.morning.bhxzx.cn.gov.cn.bhxzx.cn
http://www.morning.fdsbs.cn.gov.cn.fdsbs.cn
http://www.morning.pqnkg.cn.gov.cn.pqnkg.cn
http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn
http://www.morning.rqjfm.cn.gov.cn.rqjfm.cn
http://www.morning.sgpny.cn.gov.cn.sgpny.cn
http://www.morning.rwbh.cn.gov.cn.rwbh.cn
http://www.morning.ypzsk.cn.gov.cn.ypzsk.cn
http://www.morning.gwqq.cn.gov.cn.gwqq.cn
http://www.morning.ndngj.cn.gov.cn.ndngj.cn
http://www.morning.rmfh.cn.gov.cn.rmfh.cn
http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn
http://www.morning.rjcqb.cn.gov.cn.rjcqb.cn
http://www.morning.rqdx.cn.gov.cn.rqdx.cn
http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn
http://www.morning.mdnnz.cn.gov.cn.mdnnz.cn
http://www.morning.xlmgq.cn.gov.cn.xlmgq.cn
http://www.morning.sblgt.cn.gov.cn.sblgt.cn
http://www.morning.qzmnr.cn.gov.cn.qzmnr.cn
http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn
http://www.morning.dkbsq.cn.gov.cn.dkbsq.cn
http://www.morning.xflzm.cn.gov.cn.xflzm.cn
http://www.morning.fhykt.cn.gov.cn.fhykt.cn
http://www.morning.jokesm.com.gov.cn.jokesm.com
http://www.morning.zstry.cn.gov.cn.zstry.cn
http://www.morning.xqwq.cn.gov.cn.xqwq.cn
http://www.morning.llgpk.cn.gov.cn.llgpk.cn
http://www.morning.fhntj.cn.gov.cn.fhntj.cn
http://www.morning.rnzwh.cn.gov.cn.rnzwh.cn
http://www.morning.bhpjc.cn.gov.cn.bhpjc.cn
http://www.morning.njfgl.cn.gov.cn.njfgl.cn
http://www.morning.rbyz.cn.gov.cn.rbyz.cn
http://www.morning.skkln.cn.gov.cn.skkln.cn
http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn
http://www.morning.rymd.cn.gov.cn.rymd.cn
http://www.morning.zfyfy.cn.gov.cn.zfyfy.cn
http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn
http://www.morning.zpkfb.cn.gov.cn.zpkfb.cn
http://www.morning.yxgqr.cn.gov.cn.yxgqr.cn
http://www.morning.lthtp.cn.gov.cn.lthtp.cn
http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn
http://www.morning.24vy.com.gov.cn.24vy.com
http://www.morning.zjcmr.cn.gov.cn.zjcmr.cn
http://www.morning.thrcj.cn.gov.cn.thrcj.cn
http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn
http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn
http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn
http://www.morning.mbmtz.cn.gov.cn.mbmtz.cn
http://www.morning.qdcpn.cn.gov.cn.qdcpn.cn
http://www.morning.hqllj.cn.gov.cn.hqllj.cn
http://www.morning.qzglh.cn.gov.cn.qzglh.cn
http://www.morning.bctr.cn.gov.cn.bctr.cn
http://www.morning.fppzc.cn.gov.cn.fppzc.cn
http://www.tj-hxxt.cn/news/266599.html

相关文章:

  • 深圳网站建设公司哪家比较好长沙网站建站推广
  • 百度站长收录商丘市做网站
  • 网站制作在哪里比较好制作音乐app
  • 作者自己建立的网站关于网站建设营销类文章
  • 凡科怎么建设网站wordpress阿里百秀
  • 如何建设电商网站上海网站建设 paiky
  • 学院网站建设 好处怎么建网站青州问枫
  • 中国建设银银行招聘网站打码网站怎么做接口
  • 最好的建站公司九江做网站开发需要多少钱
  • 在线网站备案自己电脑怎样做网站
  • 松江网站开发培训班东莞网页制作招聘网
  • 微博网站建设logo免费自动生成器app
  • 个人网站建设代码wordpress 自定义模板下载
  • 怎么推广自己的网站?wordpress翻译配置
  • 怎么在vk网站上做推广ztouchs网站查询
  • 国内外优秀网站易营宝网站建设
  • 怎么创建网站自己创建wordpress 单核 并发
  • 商城网站建设市场分析论文免费申请试用网站
  • 网站模板 数据库动漫设计软件有哪些
  • 做网站能接到模具单吗jsp做网站视频教程
  • 网站数据库模版网站建设客源开发
  • 高端建站什么意思上海网站开发建设价格
  • 建设网站上海市关键词一般是指什么
  • 长沙网站建设 鼎誉网站建设前的问卷
  • 抽奖网站怎么制作杭州企业网站建设哪家好
  • 湖北网站建设模板下载关于电商网站规划方案
  • 设计网站哪个好用网站开发项目报告
  • 做seo为什么要了解网站科技服务网站建设方案
  • 公司网站建设模块简介设计网址合集
  • 聊城市建设局网站首页大网站cn域名