前言

竟然足足一星期没刷题了,上周毕设紧急赶了波工,就没什么动力,希望不会因此生疏了,组会过后刷新了焦虑值,又是新的一周,干巴爹

209. 长度最小的子数组

  • 暴力解法:时间复杂度O(n2),两个for循环,超时了没通过

    • class Solution {
      public:int minSubArrayLen(int target, vector<int>& nums) {int num = 100010;  // 累积长度 或 INT32_MAXint len = nums.size();for(int i = 0; i < len ; i++){int sum = 0;for(int j = i; j < len; j++){sum += nums[j];if(sum >= target){if(j - i + 1< num){num = j - i + 1;}break;} }}if(num == 100010) return 0;else return num;}
      };
  • 滑动窗口:时间复杂度O(n),一个for循环,保证一个大于等于目标值的最大窗口去慢慢缩小
    • 解决:窗口内是什么?如何移动窗口的起始位置?如何移动窗口的结束位置?
    • class Solution {
      public:int minSubArrayLen(int target, vector<int>& nums) {int num = INT32_MAX;  // 结果int sum = 0; // 滑动窗口数值之和int i = 0; // 滑动窗口起始位置for(int j = 0; j < nums.size(); j++){sum += nums[j];while(sum >= target){  // 保持窗口刚好大于targetnum = num < j - i + 1 ? num : j - i + 1;  // 简洁写法sum -= nums[i++];}}// 如果result没有被赋值的话,就返回0,说明没有符合条件的子序列return num == INT32_MAX ? 0 : num;}
      };

904. 水果成篮

  • 官方题解注释版,进一步学习滑动窗口,并且熟悉容器哈希表的操作,这个更熟悉
  • class Solution { public: int totalFruit(vector& fruits){int n = fruits.size();unordered_map<int, int>count;//建立哈希表countsint i = 0;//窗口起始值int ans = 0;//result返回值而已for (int j = 0; j < n; j++){count[fruits[j]]++;//往哈希表里存放尾部键fruits[j],值++while (count.size() > 2){//防止两个键值以上,俩篮子auto it = count.find(fruits[i]);//auto自动类型,迭代器it指向容器中的元素--it->second;//it->second访问值,进行减减操作,it->first访问键if (it->second == 0){//值=0,及时删掉该类别count.erase(it);//抹掉这一类}++i;//左边界右移}ans = max(ans, j - i + 1);//每次循环结束更新最大长度}return ans;//返回result
    }
  • 最小滑窗模板:在迭代右移左边界的过程中更新结果
    • while j < len(nums):判断[i, j]是否满足条件while 满足条件:不断更新结果(注意在while内更新!)i += 1 (最大程度的压缩i,使得滑窗尽可能的小)j += 1
  • 最大滑窗模板:在迭代右移右边界的过程中更新结果
    • while j < len(nums):判断[i, j]是否满足条件while 不满足条件:i += 1 (最保守的压缩i,一旦满足条件了就退出压缩i的过程,使得滑窗尽可能的大)不断更新结果(注意在while外更新!)j += 1

后言

琢磨累了,明天再写比较难的字符串,感觉现在写不出的原因有两个,一个是思路不熟悉,一个是C++的操作忘掉了,慢慢来吧,干饭去咯

【代码随想录】刷题笔记Day5相关推荐

  1. 二叉树公共祖先问题-代码随想录-刷题笔记

    236. 二叉树的最近公共祖先 递归三部曲: 1)确定递归函数返回值以及参数 需要递归函数返回值,来告诉我们是否找到节点q或者p,那么返回值为bool类型就可以了.但我们还要返回最近公共节点,可以利用 ...

  2. 第1天-代码随想录刷题训练| 704二分查找、26移除元素

    文章目录 1. 二分查找704 扩展 2.移除元素 2.1数组理论基础 2.2 暴力解法 2.3双指针解法 2.4 扩展题 1. 二分查找704 原题链接 给定一个 n 个元素有序的(升序)整型数组 ...

  3. 代码随想录刷题记录:回溯算法篇

    前言 本专题主讲回溯. 回溯算法个人总结 参考了很多网上的教程,首先是该算法的代码模板总结如下: 代码模板 //回溯算法框架 List<Value> result; void backtr ...

  4. 代码随想录刷题|LeetCode 332.重新安排行程 51. N皇后 37. 解数独

    目录 332.重新安排行程 思路 重新安排行程 51. N皇后 思路 N皇后 37. 解数独 思路 解数独         这三道题目都是困难题目,都是根据代码随想录的思路总结书写,慢慢理解,慢慢熟练 ...

  5. 代码随想录刷题总结:数组与字符串

    一.二分法 704. 二分查找 细节注意: m i d = b e g + e n d − b e g 2 mid=beg+\frac{end-beg}{2} mid=beg+2end−beg​,如此 ...

  6. 【代码随想录刷题记录】 232.用栈实现队列 、225. 用队列实现栈

    232.用栈实现队列 题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x ...

  7. 代码随想录刷题|LeetCode 1049. 最后一块石头的重量II 494. 目标和 474.一和零

    目录 1049. 最后一块石头的重量 II 思路 最后一块石头的重量|| 494. 目标和 思路 0.求什么 1.确定dp数组的含义 2.递推公式 3.初始化dp数组 4.遍历顺序 目标和 474.一 ...

  8. LeetCode刷题笔记-动态规划-day4

    文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...

  9. 刷题笔记(十四)--二叉树:层序遍历和DFS,BFS

    目录 系列文章目录 前言 题录 102. 二叉树的层序遍历 BFS DFS_前序遍历 107. 二叉树的层序遍历 II BFS DFS 199. 二叉树的右视图 BFS DFS 637. 二叉树的层平 ...

最新文章

  1. Unity粒子系统创建VFX游戏特效学习教程 Visual Effects in Unity Particle Systems [Beginner’s Guide]
  2. 数据结构与算法系列 目录
  3. 转 php 观察者模式
  4. 每天都用手机,你对麦克风了解吗?
  5. Qt工作笔记-Qt5新版信号与槽
  6. epoch,batch
  7. 【名词解释】7.UML类图
  8. Java 输入输出流 解决中文乱码问题【不一定详细但一定实用篇】【全文4800字】
  9. BAT、360、网易等大公司开源项目
  10. 东芝166打印机装驱动出现inf安装服务段落无效
  11. Context and Attribute Grounded Dense Captioning
  12. Linux下编译build的命令,Linux内核编译中build目录设置
  13. BodyContent揭秘及定制复杂的JSP标签
  14. PAT编程(python) 1004 成绩排名
  15. 灰狼优化算法(Grey Wolf Optimizer, GWO)
  16. JavaEE进阶总结
  17. C 语言字符数组的定义与初始化
  18. 实现redis连接池以及管道
  19. python按关键字爬取必应高清图片
  20. asp.net调用飞信免费发短信

热门文章

  1. 由DIY想到的面向对象思想
  2. 利用SOLIDWORKS仿真进行三点弯曲试验
  3. plasma桌面特效无效的解决办法
  4. 对抗样本之CW原理coding
  5. arduino串口接收数据包_Arduino 串口接收转发十六进制数据,软串口收不到数据
  6. 因特网的起源/局域网/路由
  7. 魔方机器人02 使用opencv-python进行颜色识别及K-Means聚类算法
  8. 齿轮箱数据集_齿轮箱的类型-精选资料
  9. 江西省建筑节能与绿色建筑发展“十三五”规划
  10. c++ SFML ftp下载文件