C++_week13
今日c++学习心得理论课今天学习了泛型算法(generic algorithm),是定义在头文件algorithm里的之所以叫泛型算法,是因为它们可以用于不同类型的元素和多种容器类型,也就是说不依赖于容器算法不直接操作容器,所以永远不会改变底层容器的大小,但是可以改变元素顺序算法都需要接受一对迭代器表示范围(左闭右开的),以及一些其他参数算法不检查写操作,保证过程安全是程序员的责任(目的位置要足够大)算法通常提供了重载默认运算符的方法,可以通过传递一个谓词实现但是,谓词只能接受特定的一个或两个参数,如果还需要更多的参数,就要用到lambda表达式lambda表达式是一个可调用对象,有一个返回类型,一个参数列表,一个函数体和捕获列表捕获列表是lambda所在函数中定义的局部变量,如果要指定返回类型,需要使用尾置返回lambda可以出现在函数中,并使用明确指明的局部变量捕获方式有值捕获和引用捕获,还可以使用隐式捕获还可以用bind函数实现类似的功能,特别地,bind可以自定义传参的顺序迭代器分为插入迭代器,流迭代器和反向迭代器算法形参模式有以下四种
alg(beg, end, oth ...
leetcode 691. 贴纸拼词
题目描述leetcode691.贴纸拼词
我们有 n 种不同的贴纸。每个贴纸上都有一个小写的英文单词。
您想要拼写出给定的字符串 target ,方法是从收集的贴纸中切割单个字母并重新排列它们。如果你愿意,你可以多次使用每个贴纸,每个贴纸的数量是无限的。
返回你需要拼出 target 的最小贴纸数量。如果任务不可能,则返回 −1 。
注意:在所有的测试用例中,所有的单词都是从 1000 个最常见的美国英语单词中随机选择的,并且 target 被选择为两个随机单词的连接。
示例 1:
12345678输入: stickers = ["with","example","science"], target = "thehat"输出:3解释:我们可以使用 2 个 "with" 贴纸,和 1 个 "example" 贴纸。把贴纸上的字母剪下来并重新排列后,就可以形成目标 “thehat“ 了。此外,这是形成目标字符串所需的最小贴纸数量。
示例 2:
12345输入:sticke ...
基本计算器
实现一个基本计算器题源:LeetCode224,LeetCode227,LeetCode772其中,第772题是这类题的终极版(不包括自定义运算符的题)也就是说,它的解法——双栈法,可以作为这类题的通解
下面我们来看具体的题目为了说明这个解法,我们先把目光投到人类是如何处理一个算式的小学我们就知道,计算的关键是处理好优先级,即先算括号里的内容,再算乘除法,最后算加减法由于运算符是左结合的,如果优先级相同,就从左向右算比如1-(5+1)/2+2*3这个算式,我们先计算5+1=6,然后算6/2=3,2*3=6,最后算1-3=-2,-2+6=4发现没有可以算的东西了,就知道答案是4其实我们编程计算的思路基本上也是与之一致的别急,先从简单的地方看起
第一种情况——只有加减号(或者只有乘除号)这可就好了,此时没有优先级的干扰,只考虑结合律,也就是从左向右算比如1+2-3+4,扫描到1和+并保存,接着扫描到2,我们就立即计算1+2=3并保存然后扫描到-和3,计算3-3=0并保存,最后扫描到+和4,计算0+4=4并保存,接着发现扫描结束,那4就是答案代码如下12345678910111213 ...
C++_week12
今日c++学习心得理论课学习了QT图形界面的相关知识Qt的图形用户界面的基础是QWidget。Qt中所有类型的GUI组件如按钮、 标签、工具栏等都派生自QWidget,而QWidget本身则为QObject的子类。Widget负责接收鼠标,键盘和来自窗口系统的其他事件,并描绘了 自身显示在屏幕上。每一个GUI组件都是一个widget,widget还可以作 为容器,在其内包含其他Widget。QWidget不是一个抽象类别。并且可以被放置在一个已存在的用户界面中;若是Widget没有指定父Widget,当它显示时就是一个独立的视窗、 或是一个顶层widget。QWidget显示能力包含了透明化及Double- Buffering。Qt提供一种托管机制,当Widget于创建时指定父对象,就可把自己的生命周期交给上层对象管理,当上层对象被释放时,自己也被释放。确保对象不再使用时都会被删除Qt的容器类比STL中的容器类更轻巧安全易于使用顺序容器QList,QLinkedList,QVector,QStack,QQueue.关联容器QMap,QMultiMap,QHash,QMultiHash, ...
C++_week11
今日c++学习心得理论课本周学习了顺序容器的相关知识顺序容器包括vector,deque,list,forward_list,array和string选择容器的基本原则
除⾮你有很好的理由选择其他容器,否则应使⽤vector。 如果你的程序有很多⼩的元素,且空间的额外开销很重要,则不要使⽤list或forward_list。 如果程序要求随机访问元素,应使⽤vector或deque。 如果程序要求在容器的中间插⼊或删除元素,应使⽤list或forward_list。 如果程序需要在头尾位置插⼊或删除元素,但不会在中间位置进⾏插⼊或删除操作,则使⽤deque。
迭代器范围是左闭右开的,即[begin,end)除array外,容器的默认初始化都使之成为一个空容器可以使用拷贝初始化和列表初始化,特别地,拷贝初始化还可以传入一对迭代器,初始化为指定范围内的拷贝这种情况下,两个容器的类型未必是相同的,只要元素可以相互转换就可以了与之类似,顺序容器还提供了assign操作,允许从一个不同但相容的容器赋值,但要注意传入的参数不能指向自身例如常用的set去重方式123vector< ...
三杯倒水问题
三杯倒水问题前几天刷B站,看到一个很有意思的视频,链接如下转到哔哩哔哩大意就是用三个只知道容量的杯子量出指定体积的水这里就是5ml(满),6ml(满),10ml(空)量出8ml瞎倒了半天,也没倒出来,这让我第一次知道原来互动视频也能死循环🤣看到评论区有人用逆推法得到了答案,我就想能否编程求解所有方法想了想,正好可以用回溯解决思路是这样的
分别用vector<vector<vector<int>>> answer和vector<vector<vector<int>>> operation储存所有状态和操作 每一次最多有六种不同的倒水方式(如果有空杯或满杯,则少于六种) 尝试这六种倒水方式,把方式记录到oneoperation中,现在水的状态记录到now中,然后存入oneanswer 如果成功地将第三杯中倒入了8ml的水,就保存到最终结果的answer和operation中 终止搜索的条件是现在的状态和之前某次一样(说明出现了循环)完整代码如下123456789101112131415161718192021222 ...
leetcode百题打卡
用了一个月左右的时间,在leetcode上刷完了一百题,45简单,48中等,7困难题目知识点分布如下我的做题顺序是先把前一百题中不太难的和感兴趣的做了然后按类别来做,主要做了回溯,双指针,字符串,链表相关的题目此外就是做做每日一题,当然遇到没学过的基本上就缺勤了还参加了三场周赛,两场做出来两题,2500名左右;刚刚那一场做出来三题,800+以后还是会坚持做下去的
童年随之而去
童年随之而去不知怎地,今天突然想到了这篇文章,是木心先生所作,而我初读它,则是在高中某次的阅读题中当时就觉得颇有味道,或许那时就已记在心中了吧今日重读,别有一番滋味原文
童年随之而去(节选) 木心
(节略部分内容提示)母亲、姑妈等人在睡狮庵请和尚做佛事。”我”随着在山上呆了一段时间后,天天吵着要回家,终于——
回家啰!
回望了一眼 —-睡狮庵,庵是小的啊,怎么有这样大的庵呢?这些人都不问问。
家庭教师是前清中举的饱学鸿儒,我却是块乱点头的顽石,一味敷衍度日。背书,作对子,还混得过,私底下只想翻稗书。那时代,尤其是我家吧,”禁书”的范围之广,连唐诗宋词也不准上桌,说:”还早。”所以一本《历代名窑释》中的两句”雨过天青云开处,者般颜色做将来”,我就觉得清新有味道,琅琅上口。某日对着案头一只青瓷水盂,不觉漏了嘴,老夫子竟听见了,训道:”哪里来的歪诗,以后不可吟风弄月,丧志的呢!”一肚皮闷瞀的怨气,这个暗趸趸的书房就是下不完的雨,晴不了的天。我用中指蘸了水,在桌上写个”逃”,怎么个逃法呢,一点策略也没有。
满船的人兴奋地等待解缆起篙,我忽然想着了睡狮庵中的一只碗!那碗却有来历。——— ...
C++_期中考试
期中考试由于晚上要进行线上的期中考试,这周没有讲书上的新课早上理论课讲了git的相关操作,以及如何进行多人合作晚上实践课进行了期中考试题目基本上是平时作业题或者稍加改动前五道是填空题,考察一些基本知识第六题是爬楼梯问题,也是力扣第70题这里可以用递归解决,但在力扣上会超时,我选择了动态规划来减少重复计算123456789101112131415int fun(int n) { if (n == 1 || n == 2) return n; else { int temp1 = 1, temp2 = 2; for (int i = 3; i <= n; ++i) { int temp3 = temp2; temp2 = temp1 + temp2;//下一个是前两个之和 temp1 = temp3;//交换前两个 } return temp2; }}第 ...
网站备案记录
网站备案过程2022.3.25购买域名,3.26开始备案,开始进行阿里云审核这几步效率很高,在一天之内就完成了,3.27阿里云提交管局同日收到工信部发来的短信,完成了短信审核接着就进入管局审核,开始了漫长的等待本以为三五个工作日就能审核完成,结果等得我都忘了这回事了直到今天,一觉醒来,看到了审核通过的短信尝试了一下,果真可以通过www.heren1229.top来访问本网站啦至此,整个备案流程用了24天,管局审核占了23天(15个工作日)在页脚添加了备案号,现在开始进行联网备案申请看看这个审核要多久吧😂
4.21更新已经完成了公安联网备案此外,还使用了了又拍云的CDN加速功能
申请SSL证书尽管完成了公网安备,打开网站还是显示不安全原来是没有SSL证书,无法访问https于是我到阿里云上申请了免费的ssl证书,很快就颁发下来了多方查找,更新了nginx配置,满心欢喜地刷新网页后发现图片都不见了😭😭😭查资料得知https网站里的http内容不会显示而我之前用的图片都来自又拍云搭建的图床,提供的测试域名是http的最后,我又搞了一个二级域名,为他申请ssl证书,再绑定到又拍 ...