Algorithm
-
26.删除排序数组中的重复项(简单) 使用双指针算法,当nums[fast]!=nums[slow]时,nums[++slow]=nums[fast]
-
83.删除排序链表中的重复元素(简单) 与上一题基本一样,都要处理一下空链表的情况,最后新链表尾指针也需要处理一下,指向
nullptr
-
27.移除元素(简单) 使用快慢指针法,如果fast指向的值等于val,则fast++,否则,nums[slow++] = nums[fast], 这里注意先给slow赋值再slow++ ,可以用一个具体的例子观察一下
-
283.移动零(简单) // 先用快慢指针将元素移到前面,再把后面的元素置零
Review
microbenchmark v.s. macrobenchmark,microbenchmark是指单一的某个操作的一个测评,比如测量某个简单api,不断循环1000次,比较平均性能。macrobenchmark是指测量较为真实的场景,这个与将多个api直接组合到一起用for循环跑是不一样的。因为真实场景下,不同api的使用频率啥的是不一样的。对于这个系统的使用者来说,往往更加关注的是macrobenchmark,因为它能体现出系统的综合性能。
- 在pandas中,series是一个列式数组,按照行号递增的顺序就是axis=0的顺序; 而dataframe包含axis=1的方向,就是相当于二维数组的列下标。
- “axis 0” has two aliases: ‘index’ and ‘rows’. “axis 1” has only one: ‘columns’.
- 在各种带axis的api中,如果axis=0,表示遍历的时候会按行遍历,每次处理一行; asix=1 则是按列进行遍历。
Tips
-
linux
rsync
命令用于同步两个文件或者文件夹,使用方法类似scp,但是速度很快,只传输两个文件不同的部分rsync -avz source dest
-
python使用anaconda可以直接把anaconda文件夹整个拷贝走实现环境迁移,非常方便,只要整下环境变量即可,但是要求整个路径要一模一样,否则就会出错。
-
gitmind、drawio、ankiweb作为web应用直接从edge上创建快捷方式,挺方便。由于edge做的比较好,高分屏下自适应适配还是很香的。
-
不小心解压到外面的目录怎么办?在linux下,可以这么操作:再解压到一个文件夹
dir
,然后使用如下命令ls dir |xargs rm -rf
-
conda 使用pip在anaconda环境中安装包,可以先在env环境中安装pip,它会安装在env环境中,然后通过which pip 查看pip路径是否是当前的env下面的。是的话就可以正常pip安装了。
-
linux 多线程下载工具,图形界面可以用
xdm
,命令行可以用axel
,axel -n 20 链接 # 起飞
-
linux
shellcheck
shell脚本静态检查工具。shell写出来运行再报错比较麻烦,这个工具可以做静态语法检查find dir -name "*.sh" |xargs -i shellcheck {}
-
linux
ag
命令,多线程的grep
,对于大文件或者很多文件比较给力。
一个linux比较有趣的工具的介绍网站Linux下你可能不知道的命令行