数据结构与算法学习日志2
数据结构与算法学习日志
如题,今天又是我的学习日志来向各位赛博导师更新学习的进度,昨天没写是因为昨天太忙了,上了一天课,有点累就早早休息了。
一、sort排序
学习了sort排序的三种写法;
1.普通排序函数
boolcamp(inta,intb){returna>b;//a>b时为真,因此sort按从大到小排序 sort默认从小到大排序}intmain(){vector<int>vec{1,4,3,7,8,6,9};//定义一个一维动态数组sort(vec.begin(),vec.end(),camp);return0;}2.函数对象
classcamp1{public:booloperator()(inta,intb){//也叫仿函数 本质是运算符()被重载returna>b;};intmain(){vector<int>vec{1,4,3,7,8,6,9};sort(vec.begin(),vec.end(),camp1());return0;}3.Lambda表达式:{}
[]:捕获表达式外的变量
[=]:值捕获 捕获到的值只读
[&]:引用捕获,可读可写
intmain(){vector<int>vec{1,4,3,7,8,6,9};sort(vec.begin(),vec.end(),[=](inta,intb){returna>b;});return0;}二、力扣209
在学完二维数组后就开始刷力扣题了,通过209学到了滑动窗口思想,也就是使用双指针一个指向左边界,一个指向右边界,通过移动边界来达到滑动窗口的效果.也是在这里为大家分享我当时犯的比较严重的一个错误,我在缩小和扩大边界时没有使用循环而是使用了if判断,这就导致了在缩小或扩大边界后就算仍需要移动边界但却不会继续移动了,也算是我踩的一个大坑,只想到条件去了,忘记while循环也能达到判断条件的效果
总结
其实最近学的东西倒不少,但没有什么比较重点的,也就不写上来浪费大家的时间了,最近可能刷题会占很大一部分内容,感谢大家阅读这篇帖子,如果有哪里说的不对的地方还请各位大佬斧正,我会积极修改,谢谢各位大佬.
