刷了一个半月算法题,我薪资终于Double了
戳蓝字“CSDN云计算”关注我们哦!
技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!
前言
很多人感觉大公司都是要手写算法,那刷题是必不可少了,你技术再厉害,这关过不了,很多机会也会和你失之交臂,很多读者刷了不少算法去了头条,拼多多,薪资一下就double,比如之前20k,跳槽一下就40k,你说羡慕不羡慕。所以算法和数据结构,对程序员很重要。当然今天这篇文章不是来打广告的,而是小豪同学整理了一些刷题心得分享给大家,因为方法大于勤奋,他15年毕业,之前一直在某TMD某家,刷了一个半月算法题,目前跳槽去了头条,薪资38k(多少k,他和我,没有利益相关,小豪同学满意就行)。小豪同学说这些心得有参考网上的《不羁的程序员小王》和《畅雨潇潇_》大佬总结,所以这里特意说明下,下面进入正文:
不要为了AC而AC
第一次刷题还是大二,同学之间挺流行一个Java的经典编程50题,第一遍AC耗时一个多月,过程很痛苦有好几次想要放弃,看题不懂方法,很难理解他人方案,很多题目看了答案只是知其然而不知其所以然,从不考虑复杂度,都是暴力法直接解决,很多解题方法通过看别人的方案去归纳,照着抄。一个多月的时间自己算是入门了,第二遍的时候轻松很多。
现在看来刷题是没有技巧的,就是多做题多练多总结,对于很多新手不要去想是不是还有最优解什么的,你做的就是暴力法求解,刷题是很枯燥的,你需要给自己一点鼓励,当把题目解决以后再去考虑其他的,在你不能很快的解决问题的时候,可是试着写点伪代码或者画个流程图。当你经过大量的练习,会形成条件反射知道这是什么类型的题,用什么方法解决。
LeetCode刷题系列是按照某个专题进行的,这样对比着刷题效果是比较好的。千万不要耍小聪明用一些奇巧淫技,思路不对再怎么绕都是浪费时间。
遇到问题多找轮子,一定有人跟你一样菜遇到过同样的问题,同样不要想着自己造轮子,绝大多数问题前辈一定有更好更完善的方案在,自己造轮子费时费事又没太大意义。
一定要自己动手实现,看答案和自己做是两回事,自己做一遍以后会加深对问题的理解。没必要把所有算法都精通,但起码在遇到问题时可以找到最优算法解决问题。即知道算法的存在及其用途,按需深入学习。
最重要的一点坚持下去,最简单且最难的事情就是坚持,每天刷一个题保持良好的手感,时间不用长了,一个月你会有非常大的进步。
刚开始刷题的时候,基本上一下午只能A过两三道easy的算法题,但是我在每次A过之后,都会在讨论里看看别人的算法,把自己觉得叼炸天的算法记录下来,尝试理解别人的算法。这种做法给我带来的最大好处是:增强自己的代码阅读能力,并且开阔了我的思路。
先写思路,再写代码
在A题的过程中,我从没用过IDE编译代码看输出,基本上都是肉眼debug,然后改错。这个方法是我在A题时别人建议的,这样可以锻炼自己的思维能力,也可以慢慢提高自己写代码的全局观和对异常输出的处理。
一开始刷题时,我都是有一点思路就尝试开始写代码,写着写着发现这种方法不可行,又全部删掉。后来慢慢变成了先在纸上写好完整的思路,甚至包括需要声明几个变量。这样虽然一开始可能觉得速度有点慢,但这样会让你在真正写代码时思路清晰,从而少犯错误,并且我觉得这种写代码的状态更好。到后来我在写算法的时候甚至不是从上到下的编写,而是先写算法的框架,再写每一个部分要完成的功能。自我认为,这是比较好的敲代码的方法,并且可以增加自己纸上代码的能力。
关于测试用例,一般我都是随便试两个,通过了就直接submit,但是这样导致我的AC率很低。后来改成先写思路的时候,我就先想测试用例,而且想一些极端的,并根据 这些测试用例来写代码的一些边界条件和保护条件,这样AC率也会慢慢高了。
最后,一定不要满足自己的算法,尽可能写出最简单的代码,即使是相同的思路,也一定要将代码减至无法再减为止。这样可以增加自己的代码质量,久而久之,你对这门语言的掌控能力也会得到提升。
刷题是可以锻炼的,千万不要让算法成为自己的短板。
当然,鱼哥也给大家准备了一份BAT算法题,供大家参考,公号后台,回复“666”,就可以获取~
福利
扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
推荐阅读:
太形象了!什么是边缘计算?最有趣的解释没有之一!
互联网出海十年
华为员工年薪 200 万!真相让人心酸!
天才程序员:25 岁进贝尔实验室,32 岁创建信息论 琥珀 极客宝宝 5天前
安全顾问反水成黑客, 靠瞎猜盗得5000万美元的以太币, 一个区块链大盗的另类传奇
人造器官新突破!美国科学家3D打印出会“呼吸”的肺 | Science
真香,朕在看了!
刷了一个半月算法题,我薪资终于Double了相关推荐
- 前后端分离最佳实践:搭建一个复习算法题的网站ReviseCode(一)
前言:很多人学完SSM就直接学SpringBoot,几乎没有试过整合SSM框架,导致仅仅是学会了SpringBoot使用,并不知道为什么是这样配置.另一方面,有的人整合了SSM框架,并且配置完后完成了 ...
- 初级程序员进大厂必刷的100道算法题
碎碎念: 亲爱的读者:你好!我的名字叫昌龙 [Changlon] -- 一个非科班程序员.一个致力于前端的开发者.一个热爱生活且又时有忧郁的思考者. 如果我的文章能给你带来一些收获,你的点赞收藏将是对 ...
- java 数组 重复数据结构_常用数据结构及其Java实现——刷了一个月算法,薪资终于Double了!...
大家五一假期回来还愉快吗?我就问问而已 本文采用Java语言来进行描述,帮大家好好梳理一下数据结构与算法,在工作和面试中用的上.亦即总结常见的的数据结构,以及在Java中相应的实现方法,务求理论与实践 ...
- es6 取数组的第一个和最后一个_JS算法题之每日一题- 17.在排序数组中查找元素的第一个和最后一个位置...
微信公众号: 题 目 Q:给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.你的算法时间复杂度必须是 O(log n) 级别.如果数组中 ...
- 刷了一个月算法,终于拿到了double的offer
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://t.cn/ESuWPa2 本文采用Java语言 ...
- 刷了一个月算法,终于拿到了 double 的 offer
点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 作者:MageekChiu 来源:sf.gg/a/1190000009797159 前言 数组 链表 队列 栈 集合 ...
- 【算法精讲】分享一道很不错的算法题
戳蓝字"CSDN云计算"关注我们哦! 技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 作者:帅地 转自:苦逼的码农 分享一道 ...
- 个人算法题精简导航整理(精炼汇总,含知识点、模板题、题单)
文章目录 前言 导航 注意事项 技巧类 自定义Pair 排序 N维数组转一维 位运算 状态压缩 算法基础 枚举 √ 指数型枚举 排列型枚举 组合型枚举 左右区间枚举 模拟 √ 日期天数问题:平年闰年情 ...
- 经典算法题(含答案解析)
时针分针重合几次 表面上有60个小格,每小格代表一分钟, 时针每分钟走1/12小格,分针每分钟走1小格,从第一次重合到第二次重合分针比时针多走一圈即60小格,所以 60/(1-1/12)=720/11 ...
最新文章
- 百度网页分享js代码
- docker如何将运行中的容器保存为docker镜像?
- 用Go重构WEB请求分析跟踪服务
- deepin关闭ACPI
- step1 . day4 C语言基础练习之日历
- 前端学习(2162):知识回顾
- html window设置,JavaScript Window
- 2003基于栈的回文字符序列判断(C++)
- FTP 客户端C实现
- canvas+websocket+vue做一个你画我猜小游戏
- mysql超市进存销管理系统_企业进存销管理系统.doc
- java access 2007,使用Access 2007 VBA创建数据透视表
- 【MDCC专访】郑晔:用JavaScript征服物联网应用开发
- FME cad中地块图形与图形标注信息的连接(空间关系连接)
- srand(time(0))函数的用法介绍
- 数据结构——超全的数据结构思维导图
- 目标检测算法汇集介绍
- linux修改用户密码命令
- MPU6500模块调试笔记——小心冒牌货
- avi通过文件读写方式实现剪切、拼接(不经过解码、编码)