小白如何高效刷题Leetcode?
文章目录
- 为什么会有这样的现象?
- 研究与学习
- 人生而有别
- 如何解决困境?
- 1. 要补的:化抽象为具体,列举找规律
- 2. 要补的:前人总结的套路
- 3. 与人交流探讨
- 4. 多写总结文章
- 总结
明明自觉学会了不少知识,可真正开始做题时,却还是出现了“一支笔,一双手,一道力扣(Leetcode)做一宿”的窘境?你是否也有过这样的经历,题型不算很难,看题解也能弄明白,可一到自己做就变成了与题面面相觑无从下手。
为什么会有这样的现象?
研究与学习
其实刷题本质类似于探索研究,探索当前这道题目,大量思索与尝试,在失败中总结前进,找到一种合适解法,这与先人发现电磁,发现各种定理定律,完全类似,只是难度不同。但是研究探索是相当耗费时间的,而学习则是一件相对简单的事情,毕竟我们用初高中6年时间学会了过去至少几百年人类耗费大量时间的研究成果,所以与其研究不如学习。
一道题目,它的解法可能多种,而每个人都有自己的特色,你探索的结果有可能是一条独特的小路,不具备共性,所以碰到类似题目仍然需要再探索就是“一道题做一宿”。
自己独立解决一件事情,探索一件事情是值得骄傲的,具有很高的成就感。但是你也会逐渐忘记自己的解法,与学习他人没有差别。但是研究时间成本太高,要接受站在巨人的肩膀上,而且未来有新的挑战在等着你,不必太心急。顺带插一句,个人认为:其实与别人交流学习,合力解决问题其实本身就是人类智能的本质,如果不是如此的话,为何爱因斯坦等人,也没有解决世界上所有难题。
刷题的初心是为了掌握某种解题思路,不是为了做题。
人生而有别
这个问题不是孤例,人生中有很多类似问题和现象,比如:很多女生学不好物理学和立体几何问题,照着菜谱一步一步做菜却超级难吃,怎么都学不会跳舞,走路顺拐;而恰恰相反为是,你学习某事情仿佛存在着“似曾相识”的感觉,一点就通,无师自通,比如:4岁萌娃蹭姐姐拉丁舞课效果超好,妹妹一夜学会弹吉他,学霸物理学同学不上课物理考试依旧满分。
人生而有别,各自带着各自的天赋和后天学识,遇到当前问题,犹如两个齿轮相遇,一切顺利如齿轮严丝合缝,更大多数情况下,就是不严丝合缝,我们需要调整自身,精进自身。
我们有哪些不足呢? 个人做了些总结,会在下面讲述。
如何解决困境?
1. 要补的:化抽象为具体,列举找规律
人有五感:视、听、嗅、味、触。视觉最重要,它是最高效、最快速的吸收外界知识的方式,是造物主赐予的瑰宝,要善用之。想不明白的时候,可以化抽象为具体,用网、树、队列和形状,符号等在纸上推演类似情况。这种方法是模拟题目,罗列多种情况,进行归纳总结找规律。
重要的是:形象生动地表示你当前的问题,降低思考难度。心算或心里推演,容易糊涂或者遗忘某事,不如在纸上快。
2. 要补的:前人总结的套路
学习前人总结好的各种类型算法套路。
你在Leetcode上遇到的没一题目,基本都属于某种套路。尽可能先去跟某人、某公开课、某视频、某书去学习当前问题类型。注意我说的顺序,这里表示其学习难以程度。跟人学是最简单最容易的,因为人具备最高的交互性、生动形象。
比如以下是一些套路:
- 硬币称重----信息熵问题。
- 兔子繁殖,上楼梯的方法----递推问题:前面几项值可以推断出当前项的值。
- 有限空间内如何装最大价值的货物----背包系列问题。
- 取石子,问先手输赢------博弈论。
如果看书最好阅读国外书籍或者机械工业出版社的翻译的书籍,比国内教材质量高些,还有丰富习题,学然后练习才能掌握。
基本遇到的每个题目,都是一种或多种套路的组合。而每一种套路,其模式中都有一个关键标识,掌握后很容易在分析时发现很有此标识,使用套路。
3. 与人交流探讨
与人交流和探讨,有很多好处:
-
人能够用动作、眼神、表情、气场、语言、图形等方法,高效地让你明白某个概念,交互性极强,这是无法取代的。
-
与人探讨交流,是思维碰撞,是你主动或被动性的积极思考,在碰撞的过程中,你会灵光一闪或醍醐灌顶,比独自思考要快很多。
教别人也是一种探讨,如果你让教授明白某个道理,那有可能是教授理解能力强,你半知半解教授也能脑补所有知识。如果你让小学生理解某个套路,那你是真懂这个道理的。
隔了很久再回来和别人探讨某个知识,也许时过境迁,你用新的视角去看旧的知识,也许有新的体会,温故而知新。
4. 多写总结文章
写总结是一种主动性思考,是慢慢理顺个人思路,并总结升华质变的过程,而质变后这种知识或者套路会融入你自己思维体系,成为你的一部分。
文章也是考验你是否真正理解这种套路。大道至简,当你能简洁扼要地让某小学生听懂(夸张了)某个道理,说明你思考至深,化繁为简,是个中大师。
总结
- 刷题是为了掌握套路,但是耗费大量时间,不赞成直接刷题。
- 向人、视频、书学套路,大量练习,与人探讨,写总结文章,形成自身知识。
如果您有任何疑问,请私信或留评论,我会在晚上回复您。
相关文章:
小白如何高效刷题Leetcode?
文章目录 为什么会有这样的现象?研究与学习人生而有别 如何解决困境?1. 要补的:化抽象为具体,列举找规律2. 要补的:前人总结的套路3. 与人交流探讨4. 多写总结文章 总结 明明自觉学会了不少知识,可真正开始…...
使用IDEA打jar包的详细图文教程
1. 点击intellij idea左上角的“File”菜单 -> Project Structure 2. 点击"Artifacts" -> 绿色的"" -> “JAR” -> Empty 3. Name栏填入自定义的名字,Output ditectory 选择 jar 包目标目录,Available Elements 里右击…...
《MySQL 实战 45 讲》课程学习笔记(二)
日志系统:一条 SQL 更新语句是如何执行的? 与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重做日志)和 binlog(归档日志)。 重要的日志模块:redo l…...
微软亚研院提出模型基础架构RetNet或将成为Transformer有力继承者
作为全新的神经网络架构,RetNet 同时实现了良好的扩展结果、并行训练、低成本部署和高效推理。这些特性将使 RetNet 有可能成为继 Transformer 之后大语言模型基础网络架构的有力继承者。实验数据也显示,在语言建模任务上: RetNet 可以达到与…...
探索单例模式:设计模式中的瑰宝
文章目录 常用的设计模式有以下几种:一.创建型模式(Creational Patterns):二.结构型模式(Structural Patterns):三.行为型模式(Behavioral Patterns):四.并发…...
Bobo String Construction 2023牛客暑期多校训练营4-A
登录—专业IT笔试面试备考平台_牛客网 题目大意:给出一字符串t,求一个长为n的字符串,使tst中包含且仅包含两个t 1<n<1000;测试样例组数<1000 思路:一开始很容易想到如果t里有1,s就全0,否则s就全…...
【React学习】React父子组件通讯
1. 父到子传值 在React框架中,父组件可以通过 props 将数据传递给子组件。子组件通过读取 props 来访问父组件传递过来的数据。 当父组件的 props 发生变化时,React 会自动重新渲染子组件以确保子组件中使用的数据保持同步。 父组件 import React, {…...
NASM汇编
1. 前置知识 1. 汇编语言两种风格 intel:我们学的NASM就属于Intel风格AT&T:GCC后端工具默认使用这种风格,当然我们也可以加选项改成intel风格 2. 代码 1. 段分布 .text: 存放的是二进制机器码,只读.data: 存放有初始化的…...
第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面
文章目录 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面使用 HL7 架构结构页面查看文档类型列表查看消息结构查看段结构 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面 使用 HL7 架构结构页面 通过 HL7 架构页面,可以导入和查看 HL7 版本 2 架构规范。…...
spring注解驱动开发(一)
1、需要导入的spring框架的依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.12.RELEASE</version></dependency>2、Configuration 设置类为配置类 3、Annota…...
Vue3搭建启动
Vue3搭建&启动 一、创建项目二、启动项目三、配置项目1、添加编辑器配置文件2、配置别名3、处理sass/scss4、处理tsx(不用的话可以不处理) 四、添加Eslint 一、创建项目 npm create vite 1.project-name 输入项目名vue3-vite 2.select a framework 选择框架 3.select a var…...
阻塞队列(模拟实现)
概念 阻塞队列是带有阻塞功能的队列 特性 当队列满的时候,继续入队列,就会出现阻塞,阻塞到其他线程从队列中取走元素为止 当队列空的时候,继续出队列,也会发生阻塞,阻塞到其他线程往队列中添加元素为止 特…...
VScode中python的相对路径与绝对路径 FileNotFoundError: [Errno 2] No such file or directory
VScode中,python里的相对路径是相对于当前工作目录来定位的,而当前的工作目录在VScode中下方的终端窗口会有提示: 说明此时的工作目录并非当前python文件所在的目录,而是C:\Users\xxxxx(你的用户名)。因此,使用VScode…...
Unity XML2——C#读写XML
一、XML 文件的存放位置 (一)只读不写的 XML 放在 Resouces 或者 StreamingAssets 文件夹下,详见 Unity基础3——Resources资源动态加载_weixin_53163894的博客-CSDN博客。 (二)动态存储的 XML 放在 Applica…...
带wiringPi库的交叉编译 ---宿主机x86Ubuntu,目标机ARMv8 aarch64(香橙派)
带wiringPi库的交叉编译如何进行 先交叉编译wiringPi库,编译出的库适合香橙派,这时候交叉编译可执行程序的平台和链接库的格式也是正确的,然后通过-I和-L来指定链接的wiringPi库的头文件和库的位置,但是现在还没有学习过…...
数据仓库基础知识
什么是数据仓库? 数仓,DataWarehouse,是一个 面向主题的、集成的、稳定的、与时间相关的 数据集合。 而这个数据集合的建立,是为了支持管理者的决策过程。 也就是说,我们通过建设数仓,为业务中的流程改进、…...
M 芯片的 macos 系统安装虚拟机 centos7 网络配置
centos 安装之前把网络配置配好或者是把网线插好 第一步找到这个 第二步打开网络适配器 选择图中所指位置 设置好之后 开机启动 centos 第三步 开机以后 编写网卡文件保存 重启网卡就可以了,如果重启网卡不管用,则重启虚拟机即可 “ ifcfg-ens160 ” 这…...
AcWing 3708. 求矩阵的鞍点
输入样例: 3 4 1 2 3 4 1 2 3 4 1 2 3 4输出样例: 1 4 4 2 4 4 3 4 4 #include<bits/stdc.h> using namespace std; const int N1010; int n,m,a[N][N],x[N],y[N],flag1; int main(){scanf("%d%d",&n,&m);for(int i1;i<n;i…...
web前端开发工程师的具体职责范本(合集)
web前端开发工程师的具体职责范本1 职责: 1.负责web前端架构的搭建,核心业务功能开发和核心代码编写。 2.配合产品经理,实现产品UI和交互方面的需求,持续界面优化,提升用户体验。 3.参与相关业务需求变更评审。 4.…...
从源程序到可执行文件的四个过程
从源程序到可执行文件的四个过程 预处理编译汇编链接 程序要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接,如下图所示: -E选项:提示编译器执行完预处理就停下来,后边的编译、汇编、链接就先不执…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
