Algorithm 算法
- [27] 移除元素
思路同 [26] 删除有序数组中的重复项,通过双指针循环将目标元素向前移位,循环结束,指针位置即是答案
function removeElement(nums: number[], val: number): number { let i = 0; for (let j = 0; j < nums.length; j++) { if (nums[j] !== val) { nums[i] = nums[j]; i++; } } return i; };
- [28]找出字符串中第一个匹配项的下标
简单粗暴的方式,使用两层循环,外部每循环一次,将目标再循环比对一次
function strStr(haystack: string, needle: string): number { for (let i = 0; i <= haystack.length - needle.length; i++) { let j; for (j = 0; j < needle.length; j++) { if (haystack[j + i] !== needle[j]) { break; } } if (j === needle.length) { return i; } } return -1; };
另有 KMP方法,可以减少循环次数,参考:字符串匹配的KMP算法 - 阮一峰的网络日志
Review 英文阅读
Article:
- [How to break free from shiny object syndrome | Publication Coach] (https://www.publicationcoach.com/shiny-object-syndrome-2/)
Review: 闪亮物体综合症:容易被各种事物吸引注意力,渴望或需要从事一个新项目,而不是我们应该从事的项目。它产生的原因有:
- 害怕错过 Fear of Missing Out,典型的如社交媒体焦虑、新闻焦虑;
- 创造力 Creativity,创造力和好奇心驱使
- 对新奇事物的需求:Our need for novelty,新奇事物或新想法会促使分泌多巴胺
- 缺乏计时反馈 A lack of immediate results,当前工作或者学习没有及时的奖励,产生倦怠
- 完美主义 Perfectionism 这会使得当前事物变的无趣
如何保持专注/避免闪亮物体综合症
- 不要立刻处理新想法 Never respond to a new idea right away. 把它写在笔记上,冷静后再看
- 明确当下目标 Be super clear about your goals
- 降低干扰 Limit distractions 远离干扰:独处、断网等
- 冥想、呼吸练习 Use meditation, breathing or exercise to help yourself. 通过训练提升专注力
- 责任感 Get some accountability. 通过责任感push自己
Tip 技术技巧
善用 Vue DevTools,方便分析组件状态参数、跟踪事件、分析性能等,比debugger
、console.log
高效!
如果在浏览器安装了插件后,未能正常启用,请检查:
- 使用非压缩、非生产版本的的vue.js
- 在开发模式,打开调试开关:
Vue.config.devtools = true
更多问题排查:The Vue devtools don't show up
Share 分享
开发工作不可避免使用Git进行版本管理,一起来学习Git:
- [Git 内部原理图解——对象、分支以及如何从零开始建仓库] (https://www.freecodecamp.org/chinese/news/git-internals-objects-branches-create-repo/)