【文件属性】:
文件名称:leetcode怎么跑-rusticode:是树和链表,快跑!
文件大小:55KB
文件格式:ZIP
更新时间:2021-06-30 09:19:06
系统开源
leetcode怎么跑
rusticode
是树和链表,快跑!
初心
刚用rust写leetcode的时候,一遇到树和链表的题,就满地clone,才能通过编译。后面对rust熟悉了之后,就找到了一些避免多余副本的方法。因为每一个副本都需要消耗内存,克隆的操作可能也会比较耗时。如果一直clone,速度和效率就大打折扣了。相比隔壁的C,虽然有了自动内存管理,但却是以拷贝作为代价。
概括地说,避免不必要clone的方法是:
使用引用,适用于不需要修改原数据结构的场景,比如树的深度,链表的长度。
使用take,适用于需要修改原数据结构的场景,比如重建二叉树。
对于那些正在用rust写题的同学,可能树和链表的代码是最有参考性的。
misc
你可以通过cargo跑测试。这里面的测试并没有涵盖所有的题目。一开始,每做一题我都会在lib.rs写对应的测试,后来觉得太麻烦就没有写了。
cargo
test
如果你想在rust中写C,这个项目也有一点点的参考价值。你可以看看lib.rs和leetcode.c是怎么交互的。
wishes
愿凡有所得,皆能自利利他。
【文件预览】:
rusticode-master
----.gitignore(327B)
----README.md(1KB)
----leetcode()
--------src()
--------Cargo.toml(175B)
--------build.rs(114B)