戳蓝字“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了相关推荐

  1. 前后端分离最佳实践:搭建一个复习算法题的网站ReviseCode(一)

    前言:很多人学完SSM就直接学SpringBoot,几乎没有试过整合SSM框架,导致仅仅是学会了SpringBoot使用,并不知道为什么是这样配置.另一方面,有的人整合了SSM框架,并且配置完后完成了 ...

  2. 初级程序员进大厂必刷的100道算法题

    碎碎念: 亲爱的读者:你好!我的名字叫昌龙 [Changlon] -- 一个非科班程序员.一个致力于前端的开发者.一个热爱生活且又时有忧郁的思考者. 如果我的文章能给你带来一些收获,你的点赞收藏将是对 ...

  3. java 数组 重复数据结构_常用数据结构及其Java实现——刷了一个月算法,薪资终于Double了!...

    大家五一假期回来还愉快吗?我就问问而已 本文采用Java语言来进行描述,帮大家好好梳理一下数据结构与算法,在工作和面试中用的上.亦即总结常见的的数据结构,以及在Java中相应的实现方法,务求理论与实践 ...

  4. es6 取数组的第一个和最后一个_JS算法题之每日一题- 17.在排序数组中查找元素的第一个和最后一个位置...

    微信公众号: 题 目 Q:给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.你的算法时间复杂度必须是 O(log n) 级别.如果数组中 ...

  5. 刷了一个月算法,终于拿到了double的offer

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://t.cn/ESuWPa2 本文采用Java语言 ...

  6. 刷了一个月算法,终于拿到了 double 的 offer

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 作者:MageekChiu 来源:sf.gg/a/1190000009797159 前言 数组 链表 队列 栈 集合 ...

  7. 【算法精讲】分享一道很不错的算法题

    戳蓝字"CSDN云计算"关注我们哦! 技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 作者:帅地 转自:苦逼的码农 分享一道 ...

  8. 个人算法题精简导航整理(精炼汇总,含知识点、模板题、题单)

    文章目录 前言 导航 注意事项 技巧类 自定义Pair 排序 N维数组转一维 位运算 状态压缩 算法基础 枚举 √ 指数型枚举 排列型枚举 组合型枚举 左右区间枚举 模拟 √ 日期天数问题:平年闰年情 ...

  9. 经典算法题(含答案解析)

    时针分针重合几次 表面上有60个小格,每小格代表一分钟, 时针每分钟走1/12小格,分针每分钟走1小格,从第一次重合到第二次重合分针比时针多走一圈即60小格,所以 60/(1-1/12)=720/11 ...

最新文章

  1. 百度网页分享js代码
  2. docker如何将运行中的容器保存为docker镜像?
  3. 用Go重构WEB请求分析跟踪服务
  4. deepin关闭ACPI
  5. step1 . day4 C语言基础练习之日历
  6. 前端学习(2162):知识回顾
  7. html window设置,JavaScript Window
  8. 2003基于栈的回文字符序列判断(C++)
  9. FTP 客户端C实现
  10. canvas+websocket+vue做一个你画我猜小游戏
  11. mysql超市进存销管理系统_企业进存销管理系统.doc
  12. java access 2007,使用Access 2007 VBA创建数据透视表
  13. 【MDCC专访】郑晔:用JavaScript征服物联网应用开发
  14. FME cad中地块图形与图形标注信息的连接(空间关系连接)
  15. srand(time(0))函数的用法介绍
  16. 数据结构——超全的数据结构思维导图
  17. 目标检测算法汇集介绍
  18. linux修改用户密码命令
  19. MPU6500模块调试笔记——小心冒牌货
  20. avi通过文件读写方式实现剪切、拼接(不经过解码、编码)

热门文章

  1. python编程猜数字小游戏(简单)
  2. 线程函数参数(LPVOID Param)
  3. Fibonacci扩展(奶牛问题)
  4. 7-3 sdut-顺序结构-1 利用海伦公式求三角形面积,了解世界科学史
  5. Python 中的“二维”字典 (two-dimension dictionary)
  6. jsp网站服务器配置
  7. Wps二次开发(POI)
  8. 如何设计安全可靠的开放接口---之Token
  9. ben we_老WE成立手游战队!2020LOL冬季转会汇总:截止11月17日(每日更新)
  10. FTP 设置用户名和密码