ARTS挑战第六周

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. 等式方程的可满足性 对于==,将其两边的变量放入同一个连通图中。然后检查 !=,如果其两边变量处于同一个连通图,则矛盾
  • 复习的题目:

Review

7 Habits I Avoid to Become Highly Productive 7个导致效率低下的习惯

  1. 关注于细节,而不是结果:一件事的好坏只有给出衡量标准,才能优化。我们的工作效率的衡量指标就是产出:你创造的以及你传递出去的。所以我们需要关注产出,才能提升效率,否则就是花时间做了很多工作,但可能是无用功而已,因此显得很忙还低效
  2. 早上起来第一件事就是看手机:早上我们的大脑、心理、情绪等都处于最佳状态,这时候我们应该想想自己的目标和计划。如果被消息、新闻等影响,很可能因为一些消息会让我们心神不宁,占据我们的大脑,从而让我们偏离自己的目标,进而效率低下。可能一上午都不看手机微信显得粗鲁,但实际上你也因你的高效专注获得尊重,并且大家习惯你后,也不会再对你有什么抱怨,因此长期看来利远大于弊。
  3. 在工作期间允许各种打断:比例工作环境很乱(包括我们的桌子以及电脑打开的各种软件),不要打开微信QQ等提醒,然后听音乐听相同的音乐不断循环。
  4. 经常工作到精疲力尽:经常工作到精疲力尽不是一个长久之计,第二天效率会降低。最好在累之前就停下来休息一下,在工作期间进行常规休息有助于恢复体力和脑力。就像健身房里锻炼,是分组的,不是一次性做到没力气,这样会导致受伤并且效果也不好。具体的话,工作45分钟就休息5~10分钟比较好。
  5. 工作没有优先级:我们每天要做的事情非常多,很多时候都是想起啥做啥,没有对自己的事情进行一个优先级排序,这样效率也会很低,因为不重要的事会让你浪费很多时间。这个我们必须清楚要做哪些事,然后在心理放1~3件优先级最高的事
  6. 找合适时间做事:例如找个时间去锻炼,找个时间给家人打电话等。其实这样的心态往往容易把这些事扔到脑后。高效率的人会把这些事安排到日程,并确保它会完成
  7. 不设置时间边界:每天工作12小时并不是高效率的标志,这说明你非常不擅长给做事设置时间期限。经常在各种事情里面插入各种琐事,导致整件事的工作时间大大延长。说白了还是让不重要的事占据了干重要的事情的时间。所以高效率的人会在工作期间拒绝一些不重要的事情,比如拒绝出去玩、吃饭之类的,当然还有自己的一些琐事,很多人心理装着太多的一针一线这种小事,因此就很容易被这些事消耗精力,并且打乱工作节奏。

Tips

  1. python可以通过str()将list或者其它内容转化为string,然后通过eval()函数再转回来

  2. c++ RAII是使用对象来管理资源,具体来说就是使用智能指针来获取对象的指针,然后在智能指针离开作用域后利用其析构函数来释放资源。但是对于数组型的对象指针是不适用 的,不过我们总是可以利用vector等来规避这点。

  3. 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这个进程

  4. 使用远程桌面注意问题:本地windows,服务器主机是linux,并且连有显示器。如果没有显示器,之前使用vnc是可以的。如果使用比较方便好用的软件例如nomachine或者teamviewer,则需要远程服务器显卡有输出才能正常连上,很多显卡只有接上显示器才会输出。所以需要服务器连上一个显示器并且是开着的,那这样远程操作时屏幕也会同步操作,非常不好。最好还是使用某宝的显卡欺骗器插在上面。nomachine在我的测试下高于teamviewer

  5. 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

  1. c++基础——预处理、编译、链接
  2. c++技巧——prinf打印彩色字体
  3. c++基础——宏定义
  4. c++技巧——让自定义函数先于main函数执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值