网站建设招代理车间生产管理软件免费

张小明 2026/1/16 22:48:14
网站建设招代理,车间生产管理软件免费,wordpress 取消做这,下载手机app客户端下载安装一、什么是时间复杂度和空间复杂度#xff1f;——用5段代码讲明白在算法世界里#xff0c;我们不只关心“能不能跑通”#xff0c;更关心“跑得快不快”、“占不占地方”。这就是时间复杂度和空间复杂度要解决的问题。时间复杂度#xff1a;衡量“执行步骤”的增长趋势不是…一、什么是时间复杂度和空间复杂度——用5段代码讲明白在算法世界里我们不只关心“能不能跑通”更关心“跑得快不快”、“占不占地方”。这就是时间复杂度和空间复杂度要解决的问题。时间复杂度衡量“执行步骤”的增长趋势不是看实际运行几毫秒而是看随着输入数据变大操作次数怎么变。我们用大O表示法Big O来描述这个“趋势”。来看几个经典例子例1线性遍历 →O(n)来自1.js// T(n) 3n3 function traverse(arr) { var len arr.length; // 1次 for (let i 0; i len; i) { // 循环 n 次 console.log(arr[i]); // 每次循环1次 } } // T(n) 1 1 n 1 n n 3n3 → 忽略常数和低阶项 → O(n)解释数组越长打印次数越多成正比关系。就像你数100个人的名字肯定比数10个人花10倍时间。例2双重循环 →O(n²)来自2.jsfunction traverse(arr) { var outlen arr.length; for (var i 0; i outlen; i) { var inlen arr[i].length; for (var j 0; j inlen; j) { console.log(arr[i][j]); } } } // T(n) ≈ 4n² ... → O(n²)解释比如一个 n×n 的表格你要把每个格子都点一遍总共点 n² 次。数据量翻倍操作次数变成4倍很可怕。例3指数级跳跃 →O(log n)来自3.jsfor (var i 1; i len; i i * 2) { console.log(arr[i]); } // T(n) 2logn 4 → O(log n)解释i 每次翻倍1→2→4→8...所以循环次数是 log₂(len)。比如 len1024只循环10次这是非常高效的节奏像二分查找。例4额外开数组 →O(n)空间来自4.jsfunction init(n) { var arr []; // 新开辟空间 for (var i 0; i n; i) { arr[i] i; } return arr; } // S(n) O(n)空间复杂度衡量额外内存占用。这里新建了一个长度为 n 的数组所以空间是 O(n)。例5原地操作 →O(1)空间还是1.js// S(1) 因为只有一个arr其他作为参数没有额外的内存开销没有 new 数组、没递归、没哈希表只是用几个变量i, len所以空间是常数级O(1) —— 最省✅总结一句话时间复杂度看“操作次数”随输入规模怎么涨。空间复杂度看“额外内存”用了多少。我们追求时间快 空间省二、实战力扣88题《合并两个有序数组》——三指针 原地合并题目要求nums1长度为m n前m个是有用数字后n个是 0预留空间nums2长度为n把nums2合并进nums1最终nums1变成一个有序数组不能返回新数组必须原地修改 nums1错误思路从前向后合并很多人第一反应用两个指针从前往后比小的放前面。但问题来了nums1 后面有空位前面却有数据如果你把小的数往前面插会覆盖掉还没处理的 nums1 元素比如nums1 [1,2,3,0,0,0], m3 nums2 [2,5,6], n3如果从前往后第一步把 1 放好没问题但第二步要把 2来自 nums2放进去时nums1[1] 原本是 2会被覆盖而那个 2 还没被处理所以不能从前向后正确思路从后往前 三指针利用 nums1尾部有空位的特点从最大的数开始填就不会覆盖未处理的数据来看代码一字不变function merge(nums1, m, nums2, n) { // 数组是连续的存储空间所以可以从后往前合并 let i m - 1; // i 是 nums1 里面“有用数字”的最后一位的位置从0开始数 let j n - 1; // j 是 nums2 里面“有用数字”的最后一位的位置 let k m n - 1; // k 是 nums1 整个数组最后一位的位置因为nums1已经预留了足够空间 // 数组是有序的 while(i 0 j 0) { // 只要 nums1 和 nums2 都还有数字没比完就继续比 if (nums1[i] nums2[j]) { // 如果 nums1 当前的数字比 nums2 的大 nums1[k] nums1[i]; // 就把大的那个放到 nums1 的最后面k的位置 i--; // 然后 nums1 的指针往前面走一步看下一个数字 } else { // 否则nums2 的数字更大或一样大 nums1[k] nums2[j]; // 把 nums2 的这个数字放到 nums1 的最后面 j--; // 然后 nums2 的指针往前面走一步 } k--; // 不管放了谁最后面的位置都要往前挪一格准备放下一个 } while(j 0) { // 如果 nums2 还剩下一些小数字没放完nums1已经放完了 nums1[k] nums2[j]; // 就把这些剩下的小数字一个个放到 nums1 前面空着的位置 j--; // 每放一个nums2 的指针往前走 k--; // 放的位置也往前走 } }图解三指针工作过程初始状态nums1 [1, 2, 3, 0, 0, 0] ↑ ↑ ↑ i | k | nums2 [2, 5, 6] ↑ jStep 1: 比较 nums1[i]3 和 nums2[j]6 → 6 更大 → 放到 k 位置nums1 [1, 2, 3, 0, 0, 6] ↑ ↑ ↑ i | k | nums2 [2, 5, 6] ↑ jStep 2: 比较 3 vs 5 → 5 更大nums1 [1, 2, 3, 0, 5, 6] ↑ ↑ ↑ i | k | nums2 [2, 5, 6] ↑ jStep 3: 比较 3 vs 2 → 3 更大nums1 [1, 2, 3, 3, 5, 6] ↑ ↑ ↑ i | k | nums2 [2, 5, 6] ↑ jStep 4: 比较 2 vs 2 → 相等放 nums2 的或 nums1 的也行nums1 [1, 2, 2, 3, 5, 6] ↑ ↑↑ i k nums2 [2, 5, 6] (j-1结束)此时j 0说明 nums2 已全部放入。而 nums1 剩下的 [1,2] 本来就在正确位置不用动 注意如果 nums1 先耗尽i0但 nums2 还有剩就需要第二个 while 循环把剩下的 nums2 元素补到前面。复杂度分析时间复杂度O(m n)每个元素最多被访问一次总共 mn 个元素。空间复杂度O(1)只用了 i, j, k 三个变量没有额外数组完美符合“原地合并”要求。为什么这个方法聪明利用了“有序”特性最大值一定在两个数组的末尾。利用了“预留空间”从后往前写不会踩到自己的脚。三指针分工明确i负责 nums1 的有效数据j负责 nums2 的所有数据k负责写入位置三、结语算法之美在于洞察结构这道题看似简单却完美展示了如何通过分析数据结构特点有序 尾部空闲设计高效策略如何用极低的空间代价O(1)完成任务为什么时间复杂度 O(mn)是最优的每个元素至少要看一次。下次遇到“合并有序数组”别再想着新建数组了试试从后往前三指针出击记住好的算法不是代码多炫而是恰到好处地利用已知条件。Happy Coding
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

石景山网站建设公司哪个好官方app

直播弹幕作为实时互动的核心载体,记录了观众评论、提问、打赏通知等关键信息,是直播内容回溯和分析的重要数据来源。DouyinLiveRecorder通过创新的多线程捕获机制和本地缓存策略,实现了99.7%的弹幕完整率,解决了行业长期存在的技术…

张小明 2026/1/15 6:27:59 网站建设

怎样登录沈阳科技网站新站优化案例

IPO准备阶段布局:通过IndexTTS 2.0积累语音数据资产 在AIGC浪潮席卷内容产业的今天,声音正从“配角”走向“主角”。视频平台需要更生动的虚拟主播,品牌方渴望独一无二的声音IP,数字人交互系统则依赖高度拟人化的语调表达——这些…

张小明 2026/1/15 19:35:27 网站建设

网站建设申请书1688精品货源免费入口

还在为3D打印质量不稳定而烦恼吗?Ender3专业固件能够彻底改变你的打印体验!无论你是刚入手Ender3的新手,还是想要提升打印效果的老用户,这份指南都将帮助你顺利完成固件升级,享受更精准、更稳定的打印效果。✨ 【免费下…

张小明 2026/1/14 13:21:59 网站建设

网页制作与网站建设ppt百度推广计划

LobeChat CDN加速部署:全球用户低延迟访问方案 在构建面向全球用户的 AI 聊天应用时,一个看似简单的页面加载,背后可能隐藏着跨越半个地球的数据传输。尤其对于像 LobeChat 这类依赖实时交互的前端界面,哪怕只是多出 200 毫秒的延…

张小明 2026/1/14 8:53:43 网站建设

html5企业网站赏析深圳在建工程查询

Android USB OTG相机终极指南:轻松连接外部USB摄像头 【免费下载链接】Android-USB-OTG-Camera 项目地址: https://gitcode.com/gh_mirrors/an/Android-USB-OTG-Camera 想要让你的Android设备变身专业摄像机吗?通过Android USB OTG功能&#xff…

张小明 2026/1/16 18:33:17 网站建设