滑动窗口
滑动窗口一.滑动窗口基本思想滑动窗口主要用来解决子串问题,先说下算法的基本逻辑:使用左右指针维护一个窗口,先移动右指针直到窗口中的字符串符合要求,然后移动左指针缩短字串,直到窗口不符合要求,然后再移动右指针,再左指针,直到右指针到达数组边界。在这个过程中通过一个start和一个len来记录最小字串
基本算法思路:
123456789101112int left=0,right=0;while(right<s.size()){ //右指针右移增大窗口 window.add(s[right]); right++; //左指针右移减小窗口 //如果可以缩小窗口,即窗口仍然符合要求则右移左指针 while(window need shrink){ window.remove(s[left]); left++; }}
有了基本思路后我们开始编写具体代码框架,先介绍下用到的几个变量:使用哈希表need和window分别记录需要凑齐的字符和窗口中的字符,使用一个变量valid来记录窗口中符合要求字符的个数(当valid==ne ...
optimizing_cpp(1-4)
optimizing_cpp一、简介本笔记是对Agner Fog优化手册中cpp优化手册的笔记,记录下对自己有用的东西。
二.选择最优平台编程语言的发展揭示了一个曲折的历史,反映了执行效率、可移植性、开发效率的冲突。
三种类型的编程语言较好的解决以上三种问题:编译型、中间代码和即时编译(intermediate code and just-in-time compilation)或者中间代码和解释器(例如某些java)、解释型。
在优化之前要选择最优的平台,步骤可以为选择硬件-选择编程语言-选择编译器-选择函数库
选择编译器时有以下几种考虑
GNU:开源免费跨平台
intel:可以自动cpu调度,为不同的cpu制定多核版本代码,但是在其他品牌的cpu运行效率不好
clang:基于LLVM,性能很强
选择函数库
cpp的安全性问题
cpp的安全性就体现在指针上,为了避免出错,要坚持几个编程原则
①为了避免出现无效指针(nullpointer)
使用引用代替指针
将指针初始化为零
一旦指针指向的对象变为无效,把指针设置为零
避免指针运算和指针类型转换
②另外,为了防止数组溢出,可 ...
二分查找
二分搜索从今天开始使用另一种刷题方式和记笔记方式,按照刷题笔记的模块划分把一类题刷明白,并且按照模块总结笔记总结经验,还要保证不断复习!
一.最基础的二分查找先粘代码,查找某个数都是这个格式
12345678910111213141516171819#include <vector>using namespace std;class Solution {public: int search(vector<int>& nums, int target) { int left=0,right=nums.size()-1; while (left<=right){ int mid=left + (right - left) / 2 ; if(nums[mid]==target){ return mid; } else if(nums[mid]<target){ ...
【live house】2021.6.4 王以太 《演说家》
2021的第一场livehouse,王以太的《演说家》,全是我喜欢的歌,和软件园的四个朋友一起去的,超嗨,唯二不足的就是大麦的场地太平了,后面的都看不太见,另外开场太晚了,王以太 唱的都太急了。
另外艾福杰尼唱的真是稳,牛的。
【话剧】恋爱的犀牛
【话剧】恋爱的犀牛 今晚文学院的话剧社来软件园演出,正好闲着便去看了一场恋爱的犀牛,第一次看话剧,的确感觉奇特,以前一直好奇为什么会有人喜欢去现场看话剧,现在流媒体这么发达,电影电视剧都看不完,况且许多话剧也已经上传到了网络上,何苦花钱跑到线下去看呢。看过之后才明白线下看话剧的感觉:与电影电视剧不同,大多数电影电视剧都是力求自然真实,而话剧却是充满戏剧感,人物的念白动作以及音乐都很夸张,就像是一本文学书中的人物活过来一样,话剧这种形式是很贴近文学的表演形式。此外,在线下听到演员的声音看到演员的表演也让人有种别样的感觉,尤其是每一幕间隔现场演奏的音乐,现场的效果真是太赞了!从此话剧便和livehouse脱口秀一样成为我看演出的第三个选择了。
说回话剧本身,《恋爱的犀牛》是一部很有名气的话剧,甚至我这个从未了解过话剧的人都听说过(当然是因为段宏毅演过一个版本),本以为看名字是个爱情故事,没想到确实是爱情故事,只不过却是如此癫狂的爱情。
这部话剧是99年上演的,描述的是那个时代的人 对于爱情的思考和执着,然而放到2021年,或许名字会被另一个庸俗的名字替代,《恋爱 ...
个人网站搭建
个人网站搭建一、选择搭建方案1、上手即用型这类网站拥有自助建站服务,不需要接触代码,只需要选择自己喜欢的模板,然后在后台使用可视化编辑器添加文章和图片即可,适合没有技术基础,想要快速建站的用户
优点:不需要编程基础 快捷 美观
缺点:拓展性极差,只能使用已有的模板,无法添加特定功能 对数据的掌控型差,无法自己控制后台 页面受限于模板,无法添加酷炫自主的东西 价格较高
例如:Squarespace Weebly Wix Typlog godaddy的建站神器也可
2.初涉专业型这类建站方式需要一定的编程基础,可以在已有模板的基础上添加自己的模块和设计,并且有丰富的第三方插件实现多样的功能,同样的,这些建站方式也可以建造出美观酷炫的网站
优点:拓展性强 较为方便 美观酷炫 拓展性强
缺点:需要编程基础 可能需要自己的服务器 部署较为麻烦
主要分为以下两个类型:静态生成技术 内容管理系统
(1)静态网站生成技术在终端执行命令快速生成静态网站,静态网站是最初的建站方式,浏览者所看到的每个页面是建站者上传到服务器 ...
个人博客建立啦
第一篇博客 以后所有的技术博客还有闲聊都会在这里发布了,希望自己更新的勤一点。
希望DNS解析别崩了QAQ