各大网站名称软件技术主修课程

张小明 2026/1/19 20:23:28
各大网站名称,软件技术主修课程,wordpress如何自己添加锚文本,高级网站开发工程师证书场景想象#xff1a; 你有一串很长的珍珠项链#xff08;字符串 s#xff09;#xff0c;和一堆散落的、长度相同的宝石#xff08;单词数组 words#xff09;。 你需要从项链上截取一段#xff0c;使得这段子串 恰好 由所有的宝石串联而成#xff08;顺序不限#…场景想象你有一串很长的珍珠项链字符串 s和一堆散落的、长度相同的宝石单词数组 words。你需要从项链上截取一段使得这段子串 恰好 由所有的宝石串联而成顺序不限但每个宝石都要用上且不能多不能少。难点升级步长变化以前left和right是挪动 1 个字符。现在因为单词长度固定为k我们每次必须挪动k个字符。分组遍历如果我们只从index0开始每次跳k步我们会漏掉从index1开始的情况。所以我们需要错位触发。力扣 30. 串联所有单词的子串https://leetcode.cn/problems/substring-with-concatenation-of-all-words/题目分析输入字符串s字符串数组wordswords里所有单词长度相同记为oneWordLen。目标在s中找到所有起始索引使得从该位置开始的子串恰好包含words中所有单词各一次。输出索引数组。核心思维多路滑动窗口 HashMap 计数这其实就是 LC 438 异位词 的“巨人版”。我们将 s 看作是一个由“单词”组成的数组。假设单词长度 oneWordLen 3。我们需要分别从 0, 1, 2 这三个偏移量开始跑滑动窗口。Offset 0: 检查s[0...2], s[3...5], s[6...8]...Offset 1: 检查s[1...3], s[4...6], s[7...9]...Offset 2: 检查s[2...4], s[5...7], s[8...10]...这样就能覆盖所有可能的切分情况。代码实现 (JavaScript)JavaScript/** * param {string} s * param {string[]} words * return {number[]} */ var findSubstring function(s, words) { if (!s || !words || words.length 0) return []; const oneWordLen words[0].length; const wordCount words.length; // 总长度所有单词拼起来有多长 const allWordsLen oneWordLen * wordCount; const res []; // 1. 统计 words 里的单词需求 const need new Map(); for (const w of words) { need.set(w, (need.get(w) || 0) 1); } // 2. 核心外层循环控制“偏移量” (Offset) // 只要遍历 0 到 oneWordLen - 1 即可覆盖所有情况 // 比如单词长 3我们只需要从 0, 1, 2 开始跑三次滑动窗口 for (let i 0; i oneWordLen; i) { let left i; let right i; let count 0; // 窗口内有效匹配的单词个数 const window new Map(); // 当前窗口里的单词统计 // 内层循环标准的滑动窗口每次跳 oneWordLen 步 while (right oneWordLen s.length) { // --- 进窗口 --- // 截取一个单词 const w s.substring(right, right oneWordLen); right oneWordLen; // 指针大步跃进 // 如果这个单词不在需求列表里说明这一段全废了 if (!need.has(w)) { // 直接清空窗口从下一个位置重新开始 window.clear(); count 0; left right; } else { // 单词是有效的加入窗口 window.set(w, (window.get(w) || 0) 1); count; // --- 出窗口 --- // 如果窗口里某个单词的数量超过了需求 // 比如 need{A:1}window{A:2}这时候必须缩左边直到把多余的 A 吐出去 while (window.get(w) need.get(w)) { const leftWord s.substring(left, left oneWordLen); window.set(leftWord, window.get(leftWord) - 1); count--; left oneWordLen; // 左指针也大步跃进 } // --- 检查结果 --- // 如果单词数量够了记录起始位置 if (count wordCount) { res.push(left); } } } } return res; };深度解析为什么需要外层循环i这是这道题最难理解的点。假设 s barfoothefoobarman, words [foo, bar] (长度3)。如果不加外层循环直接从 0 开始滑检查bar,foo,the... (索引 0, 3, 6...)但是如果答案是从索引 1 开始的呢虽然这题不是但假设s afoo...从 0 开始滑会读到afo,o...完全错位。所以我们需要i0: 处理索引0, 3, 6, 9...的单词切分。i1: 处理索引1, 4, 7, 10...的单词切分。i2: 处理索引2, 5, 8, 11...的单词切分。i3: 不需要了因为它和i0是重合的只是少了一个单词。总结这道题是 LC 438 的进阶版也是 LC 76 的变种。它强迫你把“字符”的微观视角转换成“单词块”的宏观视角。关键点 1外层循环遍历0到wordLen - 1消除“相位差”。关键点 2内层循环的步长是wordLen。关键点 3遇到非法单词直接window.clear()这是极大的优化剪枝。下一题预告滑动窗口最大值拿下了这道“步长跳跃”的难题下一关我们要去挑战一个需要特殊武器的题目——LC 239. 滑动窗口最大值(Hard)。题目很简单一个窗口滑过数组每次告诉你窗口里最大的那个数是谁。陷阱如果你每次遍历窗口找最大值时间复杂度是 $O(N \times K)$会超时。新武器你需要学会使用“单调队列” (Monotonic Queue)。这是一种虽然叫“队列”但里面的人必须按身高排队的神奇结构。准备好解锁新数据结构了吗
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设中图片网页制作学什么东西

按需付费新模式:根据DDColor处理时长购买云端计算Token 在数字时代,一张泛黄的老照片可能承载着几代人的记忆。然而,将这些黑白影像还原为生动的彩色画面,过去往往意味着高昂的成本与漫长等待——直到AI技术的突破让这一切变得触手…

张小明 2026/1/17 16:08:05 网站建设

专门做动漫的网站注册公司在哪里注册

5分钟快速上手:零基础玩转AI姿态搜索技术 【免费下载链接】pose-search x6ud.github.io/pose-search 项目地址: https://gitcode.com/gh_mirrors/po/pose-search 想要让计算机真正理解人体动作吗?姿态搜索技术正在重新定义人机交互的边界。通过先…

张小明 2026/1/17 16:08:06 网站建设

服务器吗放几个网站自己做网站投放有流量么

想要在无人机自主导航领域快速取得进展?NTU VIRAL数据集正是你需要的利器!这个集成了视觉、惯性、激光雷达和超宽带传感器的综合数据集,为你提供了从算法开发到性能验证的完整解决方案。 【免费下载链接】ntu_viral_dataset 项目地址: htt…

张小明 2026/1/17 16:08:07 网站建设

网站设计资源模板网站建设教程视频教程

第一章:Open-AutoGLM多任务并行冲突全解析 在大规模语言模型训练中,Open-AutoGLM架构因其支持多任务并行处理而备受关注。然而,当多个任务共享底层参数与计算资源时,任务间容易出现梯度冲突、资源争抢和调度延迟等问题&#xff0c…

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

东莞网站建设推广杭州线上推广

私有化部署方案满足金融、政务等高安全需求:EmotiVoice 多情感语音合成系统技术解析 在银行客服电话里听到的那句“非常抱歉给您带来不便”,如果语气平淡如机器朗读,用户感受到的往往是敷衍;但如果语调中带着恰到好处的歉意与关切…

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

新开传奇网站195合击北京网站建设解决方案

一、本文介绍 🔥本文给大家介绍使用 DAAttn 差异感知注意力融合模块改进RT-DETR网络模型,模型能够在变化检测任务中更精确地识别目标,尤其是在复杂背景和微小变化的情况下。它能够提高RT-DETR的精度、鲁棒性,并减少无关噪声的影响,提升小目标和细节变化的检测能力,同时…

张小明 2026/1/17 16:08:10 网站建设