如何刷Leetcode?【从400到700到900的全网总结篇】

2023-12-22 15:38
文章标签 leetcode 全网 总结 900 400 700

本文主要是介绍如何刷Leetcode?【从400到700到900的全网总结篇】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

如何两个月刷400道leetcode
刷完700多题后的首次总结:LeetCode应该怎么刷?
写于LeetCode刷完900题之际的感想
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的刷题
书影博客:搜题序号即可
负雪明烛
labuladong的算法小抄

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

四. 如何避免遗忘

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

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

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

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

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

六.结束语

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

初稿 2020.8.30

这篇关于如何刷Leetcode?【从400到700到900的全网总结篇】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524506

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

哈希leetcode-1

目录 1前言 2.例题  2.1两数之和 2.2判断是否互为字符重排 2.3存在重复元素1 2.4存在重复元素2 2.5字母异位词分组 1前言 哈希表主要是适合于快速查找某个元素(O(1)) 当我们要频繁的查找某个元素,第一哈希表O(1),第二,二分O(log n) 一般可以分为语言自带的容器哈希和用数组模拟的简易哈希。 最简单的比如数组模拟字符存储,只要开26个c

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

leetcode-24Swap Nodes in Pairs

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode swapPairs(L

leetcode-23Merge k Sorted Lists

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode mergeKLists

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &