Leetcode适合新手吗?0基础怎么较短时间得到算法数据结构提升?揭秘大牛都在用的刷题工具!...

news2024/11/27 11:35:45

别再用leetcode无脑刷题了!

刷题不应该量化为“刷多少道题”,对于刷题来说,永远不是追求数量的堆叠。

你想,LeetCode 上的题难度不等,有简单、中等、困难。
刷100道简单题倒是快,一个星期保证完事,但是有什么提高呢?
刷100道难题更快,刷第一道,然后一直做不出来,看答案也看不懂,直接劝退。

所以刷题一定要掌握一些技巧,因为刷题是一个系统性的工程,要有章法有规划的进行。

069a9f96ee432f65a00f4435bd7185f2.png

看看ACM金牌选手自用的刷题顺序:

1.基本数据类型

没有条件控制,没有循环,单纯的按从上到下的顺序执行代码,例如数学计算,取模等问题

2.判断语句

主要考察选择结构,没有循环,有if,else if,else等判断语句,例如判断闰年等问题

3.数组与循环

主要考察数组、循环语句,以while、for循环为代码主体的题,不要出现字符串,如数组求和等问题

4.字符串与循环

考察字符串操作,例如判断 回文串、求子串等问题

5.栈与队列

主要考察栈和队列的特性,调用库来完成题目要求,或简单实现,比如括号匹配等问题

6.简单递归

递归类问题,超简单的那种,比如 斐波那契

(ps:文章末尾附详细题单,建议收藏后观看,以防意外走丢~)

d6a01a78d95db9aa111829bf9604d734.png

分享一个昨天收到的知友私信

0aaa63a395819edee7b18408cc85f533.png

其实,我在知乎上收到类似的私信真的太多次了,我总结大家的主流想法都是:“找一个名气大的刷题工具,开始废寝忘食的狂刷”,却忘了老祖宗曾说过的因人而异~

leetcode虽然题库庞大,但同考点题目冗杂,太多复杂的知识点交错在一起,很容易心态崩溃,真心不建议新手盲刷,效率低且刷完就忘!

新手我更建议使用国内炼码(lintcode),它的题库都是按照考点分类的,每道题有专门的知识点详解,刷题效率高,刷1道等于在leetcode刷3道的效果,而且还有国内大厂常考题集帮你快速进入备考状态。

38af227f245c20ac7346ff2956f18259.gif

【刷题建议】

如果你是新手或者想巩固编程知识,可以根据题目类型or知识点tag进行细分刷题,让刷题变得更高效、有目的性。

xg.zhihu.com/plugin/9ef

里面的题库是按算法、数据结构、系统设计等不同维度进行分类的,可以根据自己的实际情况有针对性的查漏补缺。

7ce421243df2959cbc481fc408c33c80.png

【题集】

它家的题库都是紧随大厂的真题实时更新的,包含了字节/华为/百度/FB/谷歌等国内外各大知名IT企业的OA、面试真题、高频题,保证了题库的时效性。

当然,如果你有明确的目标公司,建议你可以多刷该公司的常考题、必考题。

0d8d442e170e15be02b0995d80b8c32b.png

【新手题集】

如果你是新手,那么【新手必刷编程50题】就很适合你了,巩固实操你学的编程知识,尽快建立起完善的知识架构,让刷题变得事半功倍!

b9e9f781d3b6e7181482e99888e584cf.png
xg.zhihu.com/plugin/1da

(ps:新用户注册就能免费用了,这50道题刷完更有助于完善编程知识框架哦~)

【SQL等教程入门】

3815c8cb7c7a9ab12d1bd6aa3a01369f.png

LintCode最近新开发了一个模块,从上方菜单栏学习】入口进入,如果想要零基础学习SQL/Java等,可以来体验一下哦,教程目前免费开放!

xg.zhihu.com/plugin/ede

★接下来我把lintcode上高效刷题的题单整理成文字版也分享出来:

(ps:下述题目编号即为lintcode题库编号)

ac4060abf8dd7298c1c9975776b1862a.png

1、基本数据类型

1 · A+B问题
37 · 反转一个三位整数
764 ·  计算圆周长和面积
1300 · 巴什博弈

2dfe747bb6abadd7528d589cd65d7e3c.png

2、判断语句

23 · 判断数字与字母字符
766 · 闰年
145 · 大小写转换
1141 · 月份天数
283 · 三数之中的最大值

6c7d177882e86fa5c45c58e9e1d3234e.png

3、数组与循环

25 · 打印X
539 · 移动零
297 · 寻找最大值
484 · 交换数组两个元素
9 · Fizz Buzz 问题
407 · 加一
463 · 整数排序
298 · 寻找素数
479 · 数组第二大数
46 · 主元素
768 · 杨辉三角
1334 · 旋转数组
767 · 翻转数组
53 · 翻转字符串
50 · 数组剔除元素后的乘积

ae964fb35a674220a59472b9234bfe7d.png

4、字符串与循环

8 · 旋转字符数组
491 · 回文数
422 · 最后一个单词的长度
353 · 最大字母
936 · 首字母大写
13 · 字符串查找
1535 · 转换成小写字母
1343 · 两字符串和

c1612fe23143ea2258690d9ff0fdb56a.png

5、栈与队列

263 · 小括号匹配
423 · 有效的括号序列
495 · 实现栈
492 · 队列维护

fad6bbc97ecbd1985befbdaa4674ebce.png

6、简单递归

366 · 斐波纳契数列
66 · 二叉树的前序遍历
67 · 二叉树的中序遍历
68 · 二叉树的后序遍历

0f08d328d9bd59e61fd9b4d11eee3247.png

如果这些题刷完了,说明你已经逐步建立起编程的思维,能够完成一些简单的代码题,这时候就可以开始逐步进阶,完成一些更高level的题目,目标是能够应付大厂的算法题。

所以,这一阶段你可以按照面试中常考的知识点进行准备,主要包括:

链表、 二分法、二分答案、相向双指针、宽度优先搜索、二叉树遍历、二叉树&分治法、二叉搜索树、深度优先搜索、坐标型动态规划、背包型动态规划、匹配型动态规划。

★进阶版对应题库:

(ps:下述题目编号即为lintcode题库编号)

8c8b99d9e58201bd40c9603b63eaa324.png

7、链表

35 · 翻转链表(一)
36 · 翻转链表(二)
450 · K组翻转链表
102 · 带环链表
98 · 链表排序

9e2803e0f281de020dc50b500fd2b27b.png

8、二分法

14 · 二分查找
28 · 搜索二维矩阵
75 · 寻找峰值
457 · 经典二分查找问题

2c2d5d65319976de5b43c42ac6054f76.png

9、二分答案

183 · 木材加工
437 · 书籍复印
319 · 方阵排队

df1eaaa0cbc34813aa34f5a0f196a380.png

10、相向双指针

56 · 两数之和
57 · 三数之和
58 · 四数之和
363 · 接雨水
539 · 移动零
6 · 合并排序数组
32 · 最小子串覆盖
1870 · 全零子串的数量
547 · 两数组的交集
406 · 和大于S的最小子数组

0a340512fb105550ae3d51d40813c37e.png

11、宽度优先搜索

433 · 岛屿的个数
615 · 课程表
120 · 单词接龙
178 · 图是否是树
278 · 绘制填充
787 · 迷宫

2cfee8b37ee7fd35e103b21f49aaefaa.png

12、二叉树遍历

66 · 二叉树的前序遍历
67 · 二叉树的中序遍历
68 · 二叉树的后序遍历
69 · 二叉树的层次遍历
73 · 前序遍历和中序遍历树构造二叉树
72 · 中序遍历和后序遍历树构造二叉树

3519d2c23b0cd9c61b0d32351c399dbc.png

13、二叉树&分治法

854 · 二叉树中最近的叶子

62bd741304102caf0fcc830e26ca22b5.png

14、二叉搜索树

902 · BST中第K小的元素
915 · BST的中序前驱节点
85 · 在二叉查找树中插入节点
95 · 验证二叉查找树
689 · 两数之和 - BST版本

d9601e57673b54fc5637e3947da5b074.png

15、深度优先搜索

634 · 单词矩阵
802 · 数独
652 · 因式分解
169 · 汉诺塔
425 · 电话号码的字母组合
33 · N皇后问题(一)

ee95c12e1de7b9287e54e5fe373270c6.png

16、坐标型动态规划

114 · 不同的路径
115 · 不同的路径 II
1827 · 停在原地的方案数2
76 · 最长上升子序列
109 · 数字三角形
1702 · 不同的子序列 II

84da091e927270bf1c60f334a33ba484.png

17、背包型动态规划

669 · 换硬币
92 · 背包问题
125 · 背包问题(二)
440 · 背包问题 III
562 · 背包问题 IV
563 · 背包问题 V
724 · 最小划分

116bd0813d676f2eadb0ed1c183c8478.png

上述这些题目均出自lintcode题库,可以根据自己的实际需求选择对应模块的题目,赶紧刷起来吧!!

xg.zhihu.com/plugin/980

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

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

相关文章

具有优异导电性能且抑制了准饱和效应的1200V 4H-SiC沟槽MOSFET

标题:1200V 4H-SiC trench MOSFET with superior figure of merit and suppressed quasi-saturation effect 摘要 本文提出一种具有部分被埋层n区包围的p屏蔽区的优异性能(FoM)1200V 4H-SiC沟槽MOSFET。在准饱和(QS)状态下,埋层n区抑制由p屏蔽区形成的耗…

SharedPreference

Android中的SharedPreference是轻量级的数据存储方式,能够保存简单的数据类型。比如String、int、boolean值等。其内部是以XML结构保存在/data/data/包名/shared_prefs文件夹下,数据以键值对的形式保存。是线程安全的,但不是进程安全的。 1.…

electron globalShortcut 快捷键,在焦点移到其他软件上时,调用快捷键报错

用 electron 开发软件,在设置了 globalShortcut 快捷键后,在当前开发的软件上调用快捷键正常,但是当焦点不在当前软件时,在使用快捷键,好些时候会报错。大概率与系统快捷键产生冲突或者快键键控制的回调里获取的内容&a…

全新UI站长在线工具箱系统源码带后台开源版

该系统的全开源版本可供下载,并且支持暗黑模式。 系统内置高达72种站长工具、开发工具、娱乐工具等功能。此系统支持本地调用API,同时还自带免费API接口, 是一个多功能性工具程序,支持后台管理、上传插件、添加增减删功能。 环…

行业追踪,2023-08-28

自动复盘 2023-08-28 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

LNMT与动静分离

目录 前言 一、简要思路 二、NGINX的配置参考 1、location 2、rewirte 三、动静分离配置(单机配置) 1、Tomcat配置 2、配置NGINX 3、安装mariadb 4、测试 Tomcat8080​编辑 Tomcat8081 访问不存在的页面 前言 LNMT(Linux Nginx MySQL Tom…

什么是网络取证(Network Forensics)

企业采用新技术来检查其网络安全是否存在零日漏洞,与立即指示问题的物理层不同,黑客攻击尝试可能会被忽视并变得严重,直到对网络流量有一个整体的可见性。通过实时监控来跟踪其源和目标的流量,以查明问题或潜在问题的根源。 什么…

CY3-DBCO活性荧光染料-星戈瑞

​欢迎来到星戈瑞荧光stargraydye!小编带您盘点: CY3-DBCO是一种活性荧光染料,它是由Cyanine3(CY3)荧光染料与DBCO(dibenzocyclooctyne)官能团共轭而成的化合物。 活性荧光染料通常是指具有特定…

Android RecyclerView 之 列表宫格布局的切换

前言 RecyclerView 的使用我就不再多说,接下来的几篇文章主要说一下 RecyclerView 的实用小功能,包括 列表宫格的切换,吸顶效果,多布局效果等,今天这篇文章就来实现一下列表宫格的切换,效果如下 一、数据来…

k8s的交付与部署

一 k8s的概念 1.1 k8s k8s是一个轻量级的,用于管理容器化应用和服务的平台。通过k8s能够进行应用的自动化部署和扩容缩容。 1.2 k8s核心部分 1.prod: 最小的部署单元;一组容器的集合;共享网络;生命周期是短暂的; …

ChatGPT在医疗领域可应用于改善与患者的沟通

注意:本信息仅供参考,发布该内容旨在传递更多信息的目的,并不意味着赞同其观点或证实其说法。 自从ChatGPT在2022年末对公众开放以来,OpenAI的这款生成式AI聊天机器人在医疗领域展示出了巨大潜力。它已经通过了美国医学执照考试&a…

3. 运行时数据区及程序计数器

3.1. 运行时数据区 3.1.1. 概述 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们…

Centos7更新glibc2.18

Centos7更新glibc2.18 查看glibc版本下载解压glibc2.18编译安装结果验证 查看glibc版本 # 查看glibc版本 ldd --version下载解压glibc2.18 参考: https://blog.csdn.net/qq_39295044/article/details/86685789 https://blog.csdn.net/myhes/article/details/106923039 # 下载…

安装配置mariadb

记录下安装配置mariadb的经历。 环境:ubuntu22 一、apt在线安装 apt代理配置 APT是Ubuntu系统中用于安装和升级软件包的工具,如果本地没有可用的软件包,APT将会连接到远程软件包服务器下载软件包。在某些情况下,用户需要将APT的…

UE5- socket客户端写法

# 实现目标 ue5 c 实现socket客户端,读取服务端数据,并进行解析 #实现步骤 {projectName}.Build.cs里增加 "WebSockets","JsonUtilities", "Json"配置信息,最终输出如下: using UnrealBuildTool;…

msvcr110.dll怎么安装?多种方法教你快速修复msvcr110.dll文件

最近很多小伙伴在咨询,msvcr110.dll怎么安装这个问题,其实要安装这个还是比较简单的,而且方法有很多种,每一种方法都有各种的优势,我们只要选择适合我们的一种方法就可以了。好了,下面我们一起来了解一下快…

微信小程序云开发-云存储文件ID转http

一、前言 云开发的云储存文件默认是以cloudID的形式读取的,但是这种读取方式只能在微信小程序或内嵌H5中使用。 所以如果需要在其他地方使用,例如浏览器或网站等其他端读取文件的时候,需要转换成普通的http链接。 目前官方提供有转换的接口…

智慧矿山2.0:煤矿智能化综合管理AI大数据监管平台建设方案设计

一、行业背景 能源与煤矿是我国国民经济的重要物质生产部门和支柱产业之一,同时也是一个安全事故多发的高危行业,施工阶段的现场管理对工程成本、进度、质量及安全等至关重要。煤矿智能化既是未来趋势,更是产业发展需求,建设智慧…

五个技巧,助你有效管理员工信息

对于大多数人力资源部门来说,在时间表、工资单记录和绩效评估之间管理员工信息是一项艰巨的任务。要做到正确管理并不那么容易,尤其是对于员工人数众多的企业而言。 本文提供了有效管理员工信息的关键技巧。无论是小企业主还是人力资源专业人员&#xf…

简单明了的Git入门

一、下载安装git 1、根据连接下载 git-scm.com 一路点击“下一步”,然后取消“view Release Notes” 二、配置git 安装成功后,鼠标右键点击第二个“Git” 配置用户名 git config --global user.name Mihu 配置邮箱(注意:这个…