leetcode怎么用时间刷_刷完700多题后的首次总结:LeetCode应该怎么刷?

9fd619bb542e718806a7fa5391d2ee17.png

推荐观看:

java技术进阶:膜拜!字节大神总结的666页大师级算法宝典,分分钟团灭LeetCode​zhuanlan.zhihu.com
50f7bbd5b6eab58a4099eaf8d5cae052.png
2020最新马士兵老师联手左程云老师丨数据结构与算法丨面试BATJ必备​www.bilibili.com

我是大二的时候开始接触LeetCode的,那时候lc只有400题,我本来打算每天做一个题,但是由于当时觉得题目太难没坚持下去。在大四考研后和研一研二的两年左右的时间,我刷了700多道题。那么我是怎么做到的呢?

5ec45b727ba1703ff46c5acabbb6434c.png

我打算分为两个部分来讲:入门篇、提高篇。

一、入门篇

刚开刷lc时遇到二叉树翻转题目,想了一天也没明白,当时无比痛苦。因为我的方法不对,我总想着自己在脑子里面想明白再写,还想着用本地IDE写个二叉树结构进行debug,现在看来都是走了弯路。

对于新人而言,不应该自己硬扣一个题目,如果想了一会没有任何思路,就应该果断看别人怎么写的。在理解了别人的做法之后,再凭理解和记忆在LeetCode的代码框里敲一遍。

就像每个课本都会有例题一样,只学纯知识大家都不知道怎么运用的。而我们在刷LeetCode的时候并没有例题可以给我们学习,因此新手会感到痛苦。新手不要害怕看别人的解法和答案,度过痛苦时期,后面就会越刷越快。

新手应该注重三个方面:基础知识、跟别人学习、做好笔记 。

1. 基础知识

需要掌握常用的数据结构和算法的思想和适用场景。

我推荐《算法第4版》,看这个书的时候不用全部看,只看重点,比如前面的Java知识不用看,数学推导不用看。再推荐一本侯捷的《STL源码剖析》,这本书对理解C++ STL有重大帮助,看了之后绝对会对数据结构和算法有更深的理解,我看完这本书之后感觉相见恨晚啊。

2. 跟别人学习

向别人学习是非常必要的。

又分为两种:

1)看别人的题解

主要看别人在解决这个题目的思路是什么。

推荐的题解作者有:

花花酱:基本每个题都有博客和视频,强烈推荐看他的视频。
负雪明烛:把重点放在分析上,每篇质量都很高。
Grandyang:通过举例子来让你明白该怎么做。
李威威,甜姨,柳婼,书影博客。

题解区的答案:英文版看lee215,中文版看liweiwei和sweetie,以及官方解答。

如果你会做这个题目,我也觉得应该看下别人怎么解决的,思路是不是一样。

比如想看负雪明烛的two sum题解,那么搜索方式就是加上fuxuemingzhu在后面搜:

cc45adbd5d7981ef4f78da4cf59593b3.png

2)看别人的总结

这部分包括算法讲解、套路整理、刷题模板等。

负雪明烛说:”做题 = 想法 + 模板“,想法需要通过看别人的解答以及讲解获得,模板就是做题的套路和模板,既可以自己总结,也可以看别人总结好的。

首先是labuladong的算法小抄,在Github上两周就获得了 10k star!!!强烈推荐,特别是动态规划不懂的,可以看。

然后有负雪明烛的【LeetCode】代码模板,刷题必会,基本总结了所有的做题模板。

3. 做好笔记

在很多年前我就开始把每个做过的题目记录在CSDN上,现在我的博客浏览量已经将近100万了。
我的做法是:任何题,无论难度,我都进行记录题目、想法、代码。虽然经常写博客的时间比写题的时间还多,但是把自己的想法讲解一遍才是真的懂了,更方便了自己之后看、以及大家交流。

当然,除了写题解,还要整理做题的方法、套路、模板,这些会随着你的经验慢慢形成的。

在B站有个小姐姐演示了如何用iPad做笔记,也讲了小白如何上手LeetCode,值得一看。

4. 交流和监督

刷题最大的障碍是自己。特别是新手,很可能由于刚接触LeetCode感觉太难就没有毅力坚持下去,导致半途而废。而且,刷题更重要的是坚持,做题的感觉都需要手感进行保持的。

所以,如果能有个组织交流和监督就好了。

二、提高篇

如果你已经过了小白的阶段,那么应该做些提高项目。

1. 周赛

所谓周赛,就是每周日上午,LeetCode组织的一场比赛,总共4道题,一般是Easy一道,Medium两道,Hard一道。中英文网站同时开始,题目相同。

做周赛的目的是检验我们的学习成果,毕竟这些题目都是新的,就像考试一样。

不要担心自己做不出来,只要尽力而为就好了,我一般的目标是解决前三道,第4道Hard做不出来也没有心理负担。

参加完比赛之后,看下别人的解答,因为都是自己苦思冥想过的方法,因此可以提高地特别快。

我最好的周赛成绩是全球28名,当时非常兴奋,开心了一整天。

2. 总结与分享

这一点和入门篇的做好笔记 略有重复,但是仍然要说,因为如果只是单纯的记录笔记和写每个题目的记录是不够的。

我在写博客的时候就落入了只记录不总结的误区中,单个题目的解决方案只会有正在做这个题的人看,但是你的提炼总结可以让你和大家都获得成长,这也是我写这个回答的原因。

上文中提到的labuladong的算法小抄就是个很好的总结与分享例子。

最后,希望大家都能够通过刷LeetCode获得成长,拿到自己满意的Offer。

期待你的点赞、关注、分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliJ IDEA:使用Google Guava生成equals,hashCode和toString

问题 在Java领域,我们经常需要编写equals , hashCode和toString方法。 老实说,这通常只是一个样板义务。 得益于智能IDE,我们通常不再自己这样做。 我们只是让和IDE一起努力。 不过有一个问题。 生成的代码通常非常丑陋。 让我们…

css代码整理

width:(宽度) height:(高度) border:1px solid red;(边框 :边框粗细 显示 颜色) border-radius:10deg;(边框…

Spring动态切换多数据源解决方案

Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性。而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求及系统状态来动态…

Appscan_web安全测试工具 (含修改启动浏览器的方法)

安全测试应该是测试中非常重要的一部分,但他常常最容易被忽视掉。 尽管国内经常出现各种安全事件,但没有真正的引起人们的注意。不管是开发还是测试都不太关注产品的安全。当然,这也不能怪我们苦B的“民工兄弟”。因为公司的所给我们的时间与…

传说之下地图素材_【开阔眼界】地图上的史记——名著轻松读

购买链接:https://j.youzan.com/Zns-38我读了无数次《史记》,每次都是读了开头没几页就放弃,文言文看不懂,翻译的白话文内容又太枯燥,现在居然有图画版的史记,还附有说明,真是太好了&#xff0c…

使用执行程序和ThreadPoolExecutor的Java线程池示例

线程池管理工作线程池,它包含一个队列,使任务等待执行。 线程池管理可运行线程的集合,工作线程从队列中执行可运行线程。 java.util.concurrent.Executors提供java.util.concurrent.Executor接口的实现,以在Java中创建线程池。 让…

H5_ 多媒体video,autio使用示例

1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>AV</title>6 </head>7 <body>8 <div class"content">9 <p>注意:audio标签设置…

mysql中ibdata1过大的问题

ibdata1文件是什么&#xff1f; 答&#xff1a; ibdata1是一个用来构建innodb系统表空间的文件&#xff0c;这个文件包含了innodb表的元数据、撤销记录、修改buffer和双写buffer。如果file-per-table选项打开的话&#xff0c;该文件则不一定包含所有表的数据。当innodb_file_pe…

go int 转切片_「快学 Go 语言」第 4 课——低调的数组

数组就是一篇连续的内存&#xff0c;几乎所有的计算机语言都有数组&#xff0c;只不过 Go 语言里面的数组其实并不常用&#xff0c;这是因为数组是定长的静态的&#xff0c;一旦定义好长度就无法更改&#xff0c;而且不同长度的数组属于不同的类型&#xff0c;之间不能相互转换…

走向REST:将Tomcat与Spring和JAX-RS嵌入(Apache CXF)

这篇文章是上一篇文章的逻辑延续。 唯一的区别是我们将使用的容器&#xff1a;它将是我们的老兄Apache Tomcat而不是Jetty 。 令人惊讶的是&#xff0c;嵌入最新的Apache Tomcat 7非常容易&#xff0c;因此现在让我展示一下。 我不会重复完整的上一篇文章 &#xff0c;因为除了…

移动端下,点击a标签背景高亮问题的解决方法

在制作某个移动端项目的时候&#xff0c;发现当我们点击链接&#xff0c;input标签或者div盒子的时候&#xff0c;整个标签会出现颜色块并会闪烁一下&#xff0c;不仅影响美观&#xff0c;而且会极大降低了用户体验。  解决方案&#xff1a;-webkit-tap-highlight-color: tra…

Sublime Text 3 Mac常用快捷键与注意事项

大多数情况下容易忘记的快捷键&#xff0c;在此整理了一下。 编辑快捷键&#xff1a;cmd L&#xff1a;选择行&#xff08;重复按下将下一行加入选择&#xff09;&#xff1b;cmd D&#xff1a;选择词&#xff08;重复按下时多重选择相同的词进行多重编辑&#xff09;&#xff…

Python 基础知识整理-2

条件语句  if else 循环语句  while  for 循环之break continue break语句用来终止循环语句&#xff0c;即循环条件没有False条件或者序列还没被完全递归完&#xff0c;也会停止执行循环语句。 break语句用在while和for循环中。 continue 语句用来告诉Python跳过当前循…

js实现oss批量下载文件_js下载文件到本地各种方法总结

一、此方法火狐有些版本是不支持的window.location.href https://*****.oss-cn-**.aliyuncs.com/*********;二、为了解决火狐有些版本不支持,可以改成这种方式window.locationhttps://*****.oss-cn-**.aliyuncs.com/*********;三、该方法IE和火狐都可以,url表示要下载的文件路径…

Couchbase 101:从Java应用程序创建视图(MapReduce)

使用Couchbase 2.0开发新应用程序时&#xff0c;有时需要从代码中动态创建视图。 例如&#xff0c;在安装应用程序&#xff0c;编写一些测试时&#xff0c;可能会需要此方法&#xff1b;或者&#xff0c;在构建框架时&#xff0c;您也可以使用它&#xff0c;并希望动态创建视图…

函数的参数详解

# 函数的参数定义函数的时候&#xff0c;我们把参数的名字和位置确定下来&#xff0c;函数的接口定义就算完成了。 对于函数的调用者来说&#xff0c;只需要知道如何传递正确的参数&#xff0c;以及函数将返回什么样的值就够了 函数内政部的复杂逻辑被封装起来&#xff0c;调用…

gRPC之grpcurl

1、grpcurl grpcurl项目地址 &#xff1a;https://github.com/fullstorydev/grpcurl 一般情况下测试 gRPC 服务&#xff0c;都是通过客户端来直接请求服务端。如果客户端还没准备好的话&#xff0c;也可以使用 BloomRPC (https://appimage.github.io/BloomRPC/)这样的 GUI 客…

算法初步——two pointers

什么是 two pointers   以一个例子引入&#xff1a;给定一个递增的正整数序列和一个正整数 M&#xff0c;求序列中的两个不同位置的数 a 和 b&#xff0c;使得它们的和恰好为 M&#xff0c;输出所有满足条件的方案。 本题的一个最直观的想法是&#xff0c;使用二重循环枚举序…

H5 _拖放使用

1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>拖放API</title>6 <style>7 [iddragme]{8 width: 100px;9 height: 100px; 10 …

从XaaS到Java EE – 2012年哪一种该死的云最适合我?

您是否曾经想过要让Java EE在某个地方启动和运行需要什么&#xff1f; 是的 多年。 从托管我自己的主机开始&#xff0c;转到一些托管产品 &#xff0c;最后偶然发现了PaaS运动。 老实说&#xff0c;我并没有太认真。 我只是想把我的东西放到某个地方&#xff0c;而不在乎解决…