数据结构和算法之双指针(滑动窗口)
滑动窗口:用i,j表示滑动窗口的左边界和右边界,通过改变i,j来扩展和收缩滑动窗口,可以想象成一个窗口在字符串上游走,当这个窗口包含的元素满足条件,即包含字符串T的所有元素,记录下这个滑动窗口的长度j-i+1,这些长度中的最大/小值就是要求的结果。不断增加j使滑动窗口增大,直到窗口包含了T的所有元素
RAIIRust 的变量不只是在栈中保存数据:它们也占有资源,比如 Box 占有 堆(heap)中的内存。Rust 强制实行 RAII(Resource Acquisition Is Initiallization,资源获取即初始化),所以任何对象在离开作用域时,它的析构函数就被调用,然后它占有的资
rust入坑之旅-泛型
Rust的包结构,根据代码层次来划分逻辑模块,Rust的模块如同其他语言的package,不同点在于模块可以包含函数,Struct trait impl块, 或者包含其他的模块。可见性默认情况下,模块中的项拥有私有的可见性(私有的),不过可以加上 pub修饰语来重载这一行为。模块中只有公有的项可以从
Rust 中的闭包(closure),也叫做 lambda 表达式 是这样式的|val| val + x。Java中的lambda 表达式 是这样的 x -> !x.equals("") 是一类输入和输出可以自动推导,而捕获周围作用域中变量必须声明的函数。
rust入坑之旅-枚举和模式匹配