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

芜湖高端网站建设阿里巴巴网站建设论文

芜湖高端网站建设,阿里巴巴网站建设论文,wordpress无法安装这个包,朝阳网站建设 高碑店系列综述#xff1a; #x1f49e;目的#xff1a;本系列是个人整理为了秋招面试的#xff0c;整理期间苛求每个知识点#xff0c;平衡理解简易度与深入程度。 #x1f970;来源#xff1a;材料主要源于【CodeTopHot200】进行的#xff0c;每个知识点的修正和深入主要参… 系列综述 目的本系列是个人整理为了秋招面试的整理期间苛求每个知识点平衡理解简易度与深入程度。 来源材料主要源于【CodeTopHot200】进行的每个知识点的修正和深入主要参考各平台大佬的文章其中也可能含有少量的个人实验自证。 结语如果有帮到你的地方就点个赞和关注一下呗谢谢 【C】秋招实习面经汇总篇 文章目录 基础知识概述 算法例题3. 无重复字符的最长子串239. 滑动窗口最大值76. 最小覆盖子串438. 找到字符串中所有字母异位词 参考博客 点此到文末惊喜↩︎ 基础知识 概述 作用 求解线性表数组/字符串中满足条件的连续子区间性质最长/最短等的相关问题通过复用子区间性质的计算结果从而减少循环层数降低时间复杂度 原理 当不满足条件的时候扩大窗口当满足条件之后减小窗口将条件进行使用bool函数封装构建基本算法框架 核心按照条件进行滑动和计算符合条件的窗口性质基本框架 解决的问题 给定一个线性表字符串、数组等一次遍历求满足指定条件的连续子部分 /* 滑动窗口算法框架 */ void slidingWindow(string s, string t) {// 参数的健壮性检查if (s.size() t.size()) return ;// 子区间性质的信息缓存unordered_mapchar, int need, window;for (char c : t) need[c];int valid 0; // 算法int left 0, right 0;while (right s.size()) {// c 是将移入窗口的字符char c s[right];// 右移窗口right;// 进行窗口内数据的一系列更新.../*** debug 输出的位置 ***/printf(window: [%d, %d)\n, left, right);/********************/// 判断左侧窗口是否要收缩while (window needs shrink) {// d 是将移出窗口的字符char d s[left];// 左移窗口left;// 进行窗口内数据的一系列更新...}} }算法例题 3. 无重复字符的最长子串 问题 给定一个字符串 s 请你找出其中不含有重复字符的 最长子串 的长度。 思路 滑动窗口 int Template(string s) {// 健壮性检查if(s.size() 0) return 0;// TODO记录窗口子区间性质int max_len 0;unordered_setchar windows;// 初始化int left 0, right 0;while (right s.size()) {// 缩小窗口while (windows.count(s[right]) ! 0){windows.erase(s[left]);left;} // 增大窗口windows.insert(s[right]);right;max_len max(max_len, right-left); // TODO更新子区间性质}return max_len; }239. 滑动窗口最大值 题目 class Solution { private:class MyQueue { //单调队列从大到小public:dequeint que; // 使用deque来实现单调队列// 每次弹出的时候比较当前要弹出的数值是否等于队列出口元素的数值如果相等则弹出。// 同时pop之前判断队列当前是否为空。void pop (int value) {if (!que.empty() value que.front()) {que.pop_front();}}// 如果push的数值大于入口元素的数值那么就将队列后端的数值弹出直到push的数值小于等于队列入口元素的数值为止。 // 这样就保持了队列里的数值是单调从大到小的了。void push (int value) {while (!que.empty() value que.back()) {que.pop_back();}que.push_back(value);}// 查询当前队列里的最大值 直接返回队列前端也就是front就可以了。int front() {return que.front();}}; public:vectorint maxSlidingWindow(vectorint nums, int k) {MyQueue que;vectorint result;for (int i 0; i k; i) { // 先将前k的元素放进队列que.push(nums[i]);}result.push_back(que.front()); // result 记录前k的元素的最大值for (int i k; i nums.size(); i) {que.pop(nums[i - k]); // 滑动窗口移除最前面元素que.push(nums[i]); // 滑动窗口前加入最后面的元素result.push_back(que.front()); // 记录对应的最大值}return result;} };76. 最小覆盖子串 题目 返回字符串 s 中包含字符串 t 的全部字符的最小窗口 思路 不断滑动增加窗口当窗口满足条件时开始收缩并记录窗口的起始位置和长度 string SlideWindow(string s, string t) {// 窗口性质need记录子串情况window记录合适窗口unordered_mapchar, int need, window; // need记录目标窗口状态window记录当前窗口状态for (char c : t) need[c]; // 子串中可能出现重复字母int valid 0; // 目标窗口和当前窗口符合字符的大小int start 0, len INT_MAX; // 符合条件子串的起始位置和长度// 初始化及滑动窗口算法int left 0, right 0;while (right s.size()) {char c s[right]; // c 是将移入窗口的字符right; // 右移窗口// 进行窗口内数据的一系列更新if (need.count(c)) {window[c];if (window[c] need[c])valid;}while (valid need.size()) { // TODO收缩条件// TODO更新结果记录if (right - left len) { start left;// 更新起始值len right - left;// 最小长度}// 收缩窗口char d s[left];left;// TODO收缩处理if (need.count(d)) {if (window[d] need[d])valid--;window[d]--;} }}// 返回最小覆盖子串return len INT_MAX ? : s.substr(start, len); }438. 找到字符串中所有字母异位词 问题 给定两个字符串 s 和 p找到 s 中所有 p 的 异位词 的子串返回这些子串的起始索引。异位词 指由相同字母重排列形成的字符串包括相同的字符串。 思路 快慢指针 交换 // 返回字符串 s 中包含字符串 t 的全部字符的最小窗口 string SlideWindow(string s, string t) {// need记录子串情况window记录合适窗口unordered_mapchar, int need, window;for (char c : t) need[c];int left 0, right 0;// 记录最小覆盖子串的起始索引及长度int start 0, len INT_MAX;int valid 0;while (right s.size()) {char c s[right]; // c 是将移入窗口的字符right; // 右移窗口// 进行窗口内数据的一系列更新if (need.count(c)) {window[c];if (window[c] need[c])valid;}while (valid need.size()) { // TODO收缩条件// TODO更新结果记录if (right - left len) { start left;// 更新起始值len right - left;// 最小长度}// 收缩窗口char d s[left];left;// TODO收缩处理if (need.count(d)) {if (window[d] need[d])valid--;window[d]--;} }}// 返回最小覆盖子串return len INT_MAX ? : s.substr(start, len); }少年我观你骨骼清奇颖悟绝伦必成人中龙凤。 不如点赞·收藏·关注一波 点此跳转到首行↩︎ 参考博客 labuladong的leetcode滑动窗口模板 codetop
http://www.dnsts.com.cn/news/55265.html

相关文章:

  • 站外推广怎么做西安网站建设盈科
  • 微网站免费开发平台中小企业网站
  • 新公司网站怎么做推广深圳建筑公司公章
  • 做网站必须要有数据库网站域名管理
  • 贵州省住房和城乡建设网站怎么做最简单的网站
  • 怎样做网站导航界面石家庄网站开发报价
  • wordpress 换数据库陕西seo顾问服务
  • 关于百度网站是多少东莞网站建设和制作
  • 网站百度优化建筑兼职招聘网
  • 重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司做网站前的准备
  • 海南专业网站建设定制有瀑布流的网站
  • 企业网站的搜索引擎推广与优化中企动力为什么留不住人
  • 厦门做网站个人计算机考试网页制作题
  • 山东网站seo开发php网站如何上传数据库
  • 多语言建站系统深圳网站建设公
  • 电脑手机自适应网站的建设清新wordpress主题
  • 南阳专业做网站公司哪家好微网站需要什么
  • 动态电子商务网站 制作网站流量统计怎么做的
  • 深圳做网上商城网站专业营销网络推广哪家好
  • 湖南学校网站建设什么行业 网站
  • 深圳做电子工厂的网站免费的网站推广渠道
  • 东莞微网站建设wordpress+粘贴表格
  • 网站右侧广告代码中英文版网站是怎么做的
  • 网站建设预期周期网上ui设计培训
  • 我国外贸企业网站建设网站升级应注意的问题
  • 单位网站建设典型材料wordpress不支持apk
  • 广州市建设工程安全监督站网站滨州网站建设招聘
  • nike建设网站的目的怎么建立一个个人网站
  • 如何修改网站后台登陆入口路劲北京有几家宽带网络公司
  • 医疗类网站建设中国建设银行甘肃省分行官网站