概述
Algorithm
- 560. 和为K的子数组 使用前缀和数组,在枚举所有子数组时需要优化,否则N^2复杂度会超时。因为符合条件的结果是sum[j]-sum[i] == k,其中j>i。因此在遍历到sum[j]时,其实只需要知道有多少个i使得sum[i] = sum[j]-k,从而将结果加上这个数。这里需要注意的地方是,我们需要知道i<j的情况,而不包含i == j的情况,因此先根据前面统计的前缀和数组中,sum[i]出现的个数更新ans,再将sum_j的值更新map。另外,前缀和sum[i]是指前i个元素的和,sum[0] = 0.
- 1109. 航班预订统计 使用差分数组,记录diff[i]= nums[i]-nums[i-1].如果需要将nums[i]…nums[j]的元素加k,则diff[i]+=k,diff[j+1]-=k,然后使用差分数组还原原数组
- 130. 被围绕的区域dfs 算法,从边缘的’O’开始深度优先遍历,对于没有没访问过的’O’,将其变成’X’
- 990. 等式方程的可满足性 对于
==
,将其两边的变量放入同一个连通图中。然后检查!=
,如果其两边变量处于同一个连通图,则矛盾 - 复习的题目:
- #297 二叉树的序列化与反序列化
- #剑指 Offer 34 二叉树中和为某一值的路径
Review
7 Habits I Avoid to Become Highly Productive 7个导致效率低下的习惯
- 关注于细节,而不是结果:一件事的好坏只有给出衡量标准,才能优化。我们的工作效率的衡量指标就是产出:你创造的以及你传递出去的。所以我们需要关注产出,才能提升效率,否则就是花时间做了很多工作,但可能是无用功而已,因此显得很忙还低效
- 早上起来第一件事就是看手机:早上我们的大脑、心理、情绪等都处于最佳状态,这时候我们应该想想自己的目标和计划。如果被消息、新闻等影响,很可能因为一些消息会让我们心神不宁,占据我们的大脑,从而让我们偏离自己的目标,进而效率低下。可能一上午都不看手机微信显得粗鲁,但实际上你也因你的高效专注获得尊重,并且大家习惯你后,也不会再对你有什么抱怨,因此长期看来利远大于弊。
- 在工作期间允许各种打断:比例工作环境很乱(包括我们的桌子以及电脑打开的各种软件),不要打开微信QQ等提醒,然后听音乐听相同的音乐不断循环。
- 经常工作到精疲力尽:经常工作到精疲力尽不是一个长久之计,第二天效率会降低。最好在累之前就停下来休息一下,在工作期间进行常规休息有助于恢复体力和脑力。就像健身房里锻炼,是分组的,不是一次性做到没力气,这样会导致受伤并且效果也不好。具体的话,工作45分钟就休息5~10分钟比较好。
- 工作没有优先级:我们每天要做的事情非常多,很多时候都是想起啥做啥,没有对自己的事情进行一个优先级排序,这样效率也会很低,因为不重要的事会让你浪费很多时间。这个我们必须清楚要做哪些事,然后在心理放1~3件优先级最高的事
- 找合适时间做事:例如找个时间去锻炼,找个时间给家人打电话等。其实这样的心态往往容易把这些事扔到脑后。高效率的人会把这些事安排到日程,并确保它会完成
- 不设置时间边界:每天工作12小时并不是高效率的标志,这说明你非常不擅长给做事设置时间期限。经常在各种事情里面插入各种琐事,导致整件事的工作时间大大延长。说白了还是让不重要的事占据了干重要的事情的时间。所以高效率的人会在工作期间拒绝一些不重要的事情,比如拒绝出去玩、吃饭之类的,当然还有自己的一些琐事,很多人心理装着太多的一针一线这种小事,因此就很容易被这些事消耗精力,并且打乱工作节奏。
Tips
-
python可以通过
str()
将list或者其它内容转化为string,然后通过eval()
函数再转回来 -
c++ RAII是使用对象来管理资源,具体来说就是使用智能指针来获取对象的指针,然后在智能指针离开作用域后利用其析构函数来释放资源。但是对于数组型的对象指针是不适用 的,不过我们总是可以利用vector等来规避这点。
-
linux 我们经常需要远程kill某个进程,使用ps -ef 然后 awk 来获得pid,但是awk中包含
$
,如果通过ssh发送命令,需要加。例如:
ssh user@host "ps -ef|grep dask-worker|grep -v grep |awk '{print $2}'|xargs kill -9"
可以杀掉dask-worker这个进程 -
使用远程桌面注意问题:本地windows,服务器主机是linux,并且连有显示器。如果没有显示器,之前使用vnc是可以的。如果使用比较方便好用的软件例如nomachine或者teamviewer,则需要远程服务器显卡有输出才能正常连上,很多显卡只有接上显示器才会输出。所以需要服务器连上一个显示器并且是开着的,那这样远程操作时屏幕也会同步操作,非常不好。最好还是使用某宝的显卡欺骗器插在上面。nomachine在我的测试下高于teamviewer
-
linux EOF妙用:
cat > file << EOF 内容 EOF(或者ctrl+D) # 将‘内容‘输出到file文件,覆盖式输出 cat << EOF > file # 与上面那个等价 cat >> file << EOF # 将‘内容‘追加到file文件 cat << EOF >> file # 与上面那个等价
注意,上面的
> file
是重定向输出到文件,默认输出到标准输出;<< EOF… EOF
表示将 EOF之间的内容作为cat的输入。
Share
- c++基础——预处理、编译、链接
- c++技巧——prinf打印彩色字体
- c++基础——宏定义
- c++技巧——让自定义函数先于main函数执行
最后
以上就是发嗲鞋子为你收集整理的ARTS挑战第六周AlgorithmReviewTipsShare的全部内容,希望文章能够帮你解决ARTS挑战第六周AlgorithmReviewTipsShare所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复