博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何刷Leetcode?【从400到700到900的全网总结篇】
阅读量:4091 次
发布时间:2019-05-25

本文共 2359 字,大约阅读时间需要 7 分钟。

本篇汇总了以下四篇如何刷leetcode的方法

前言

随着互联网寒潮的到来, 越来越多的互联网公司提高了面试的难度,其中之一就是加大了面试当中手撕算法题的比例。这里说的算法题不是深度学习,机器学习这类的算法,而是排序,广度优先,动态规划这类既考核数据结构也考核编程能力的题目。刷题的网址非常的多,其中以leetcode是最为出名的。

在刷题上,主要有这三个问题:

1.刷过的题老是忘,第二次刷的时候还是不会做2.刷题的速度很慢,即使花一天时间,也常常只能刷五六道3.坚持不下来,老是刷到一半就停滞下来了,当我第二次再来刷的时候,前面刷过的题都又忘的差不多

说出来都是泪,感觉刷题这个路是真的难走,花了很多时间,但是感觉没有什么收获。所以最近我一直在反思自己刷题的方法,希望能够提高刷题的效率和速度。当我总结了以下方法以后,我很明显的感受到自己的刷题速度从以前周末的一天五六道提升到周末一天刷十五六道以上,速度相比以前提升的非常明显。

一. 我们来谈谈为什么要刷题

1.面试需要Google以及今日头条等公司面试的时候,非常看重基本的算法题目,leetcode 刷的不好第一面都过不了2.刷题能够提高自信。实际工作当中的代码论算法复杂度远远低于刷题的难度,这么难的题我都刷过了,何况工作的代码, 当然工作当中一般也用不到这些我们刷题的方法3.大部分同学刷题能力需要提高。在面试同学算法题的时候,三道算法题能够写出一道的也不是很多

二. 如何快速刷题

1. 确立计划比如在准备找工作的时候,明确就要60天刷leetcode 前400题,平均一周就要刷75题,可以周末两天刷50题,周一到周五 每天刷5题,将问题分解下来,每天一定要完成任务才能睡觉2. 分解计划。由于需要一周刷75题,提前规划将本周需要刷的75题,整理成excel,刷完一题标记一下,一周完毕以后,可以看到满满标记的excel 非常的有成就感3. 快速刷题。初期一天刷五题其实也是很高的负担,一般来说刚刷题,一题都至少要半个小时,一天五道的话,可能至少也要两个半小时。所以我们在刷题的时候,为了节约时间,五分钟没有思路,就别浪费时间了,直接看答案. 另外一个原因,面试的时候,也不可能让你思考很久。要明确认知,这个和高考刷题没什么区别,理解不了,先背下来。4. 组队刷题。大家一起刷题,可以明显的督促自己坚持下来,刷题这个本来就是坚持的过程。

三.如何刷题

从《在B站有个小姐姐演示了如何用iPad做笔记,也讲了小白如何上手LeetCode【】》说起

①.主要内容

1. 时间规划(集中式大量刷题 保持题感 养成刷题习惯)2. 按照类型去刷题(数据类型 算法) 网站页面旁边有筛选功能3. 不能死记硬背 要理解题目套路举一反三(这点很重要!)4. 对于新手来说 看答案是可以的(新手不一定能想出来最优解)5. 用笔记本 ipad学习(Goodnotes)6. 利用网上资源 搜索题解视频

②.刷题目录

从 Leetcode 中精选大概 200 左右的题目,去除了某些繁杂但是没有多少算法思想的题目,同时保留了面试中经常被问到的经典题目。
https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E7%9B%AE%E5%BD%95.md

③.推荐观看B站的视频题解

  1. 花花酱 https://space.bilibili.com/9880352

    在这里插入图片描述

  2. nat8023的小Q刷题 https://space.bilibili.com/149758

    在这里插入图片描述

  3. 绵羊教授 https://space.bilibili.com/354892788

    在这里插入图片描述

④.看别人的题解 整合了其他博主推荐的

推荐的有关python的刷题

:搜题序号即可

其他

:风格超赞
在这里插入图片描述
:通过举例子来让你明白该怎么做。

四. 如何避免遗忘

  1. 及时重复。

    由于我们刷完题以后,遗忘曲线会遵从一个先快后慢的过程,所以要及时重复刷过的题,这个需要提前规划刷的75题,我们会之后再讲如何规划每周的75题

  2. 与人分享。

    当我们刷完题以后,如果能讲给别人听的话,会大大加深我们的映像,在讲给别人听的时候,如果你能讲的很明白,说明你是彻底理解了,
    但是如果听的人始终没有听明白,那很有可能就是自己没有理解这个题目,需要自己再回去思考一下这个题目的解法。

五. 如何提高面试环节当中刷题的表现

  1. 养成bug free 的习惯。

    写完代码以后, 一定要仔细检查,保证没有思路问题,没有下标越界问题,考虑各种边界情况,没有变量命名不一致等问题

  2. 掌握多种解法。

    算法题面试,做出来是一方面, 如果能够在这个题目上掌握不同时间复杂度的解法,然后再呈现给面试官,面试官自然会更加满意的。假设一个同学在面试的时候,先写时间复杂度和空间复杂度最高的方法,面试官很有可能会问你这个题目有更优的解法吗,你再写时间复杂度和空间复杂度稍低一点的解法,如果面试官继续问你能不能更优化一点,你再写出时间复杂度和空间复杂度最优的方案,面试官会认为你的思考是有深度的,如果一开始就写出时间复杂度和空间复杂度最优的方法,面试官只是会觉得这个题目你以前做过而已。

六.结束语

  1. 刷题最重要的是速度和效率。
    短时间内高质量快速刷完才是最终目的,明确自己的认知,不要和题目死磕。
  2. 坚持下来。
    如果一个事情方向是正确的时候,即使一时遇到挫折了,也不要气馁,多总结方法,持续提高。刷题这件事情给我的挫败感是非常高的,中间是一度放弃了很久,但是当我想明白这道坎是一定要过的时候,就下定了决心一定要攻克这道难关,持续总结方法,持续进步。

初稿 2020.8.30

转载地址:http://nujii.baihongyu.com/

你可能感兴趣的文章
React非嵌套组件通信
查看>>
Websocket 使用指南
查看>>
浏览器兼容性问题解决方案 · 总结
查看>>
一个很棒的Flutter学习资源列表
查看>>
为什么你应该放弃React老的Context API用新的Context API
查看>>
Flutter 布局控件完结篇
查看>>
Koa2初体验
查看>>
Koa 2 初体验(二)
查看>>
Koa2框架原理解析和实现
查看>>
vue源码系列文章good
查看>>
你不知道的Virtual DOM
查看>>
VUE面试题总结
查看>>
写好JavaScript条件语句的5条守则
查看>>
原生JS中DOM节点相关API合集
查看>>
【TINY4412】U-BOOT移植笔记:(7)SDRAM驱动
查看>>
【TINY4412】U-BOOT移植笔记:(12)BEEP驱动
查看>>
单链表的修改和删除
查看>>
C++的三个基本特征:封装、继承、多态
查看>>
C++虚函数的总结
查看>>
什么是URL地址?
查看>>