刷题新手必看!如何简单快速地入坑leetcode!

刷题新手必看!如何简单快速地入坑leetcode!

目录

前言

第一部分:认识leetcode

        刷题位置:

                推荐:

                 学习计划:

                题目单 :

         学习位置:

        比赛位置:

        讨论位置:

第二部分:如何用leetcode科学刷题?

        前言:

        新手:

        制定计划:

        刷题顺序 + 学习:

        刷题计划推荐:

       入门:

         制定计划:

         刷题顺序:

         开始竞赛:

老手:

总结:


前言

        首先在这里放一张图片以防有人说我是转载的

这张是3.11的

第一部分:认识leetcode

        leetcode网址:力扣 (LeetCode) 全球极客挚爱的技术成长平台

        首先我们要先知道,leetcode是一个集刷题、学习 为一体的平台

        先带大家了解一下

        刷题位置:

                首先点开网址后你要先注册,然后来到首页,点击下面图片中的“题库”

                

                然后进去之后你会看到如下:

                        

 

        接下来挨个讲解一下:

                推荐:

                        推荐就是会给你推荐一些“leetbook”(学习的电子书)有兴趣的可以点进去看看,这里不多说

                 学习计划:

                        这个东西我觉得新手有必要进去看一看,这个东西可以督促你每天去刷题,对新手有很大帮助,列个顺序:

                        1.[新]动计划·编程入门(新手必做)(全是基础)

                        2.Leetcode热题100(新手的进阶题单,快速入门)

                        3.自选

                        (注意有些题单里头有VIP题目,可以跳过)

                题目单 :

                        这个里头有所有的题目,新手刷题可以一道一道刷或者从简单往困难刷

                        简单:新手多做一做,有好处,不难,可以锻炼编程基础

                        中等:新手想提升自己可以做一做,比较难,可以锻炼编程的算法

                        困难:入门过后一定做,有很多好处,很难,可以锻炼编程进阶算法和高级算法,像要参加蓝桥杯的,一定多刷一刷

         学习位置:

                        还是上面的图片,点击“学习”

                        

        你就会看到里面有很多的“Leetbook” 

        

 

        比赛位置:

                还是上面的图片:

                        

 

        点击“竞赛”

        

 

        讨论位置:

                

 

                点击"讨论“

                讨论的重要性 :讨论还是建议大家多去看的,因为如果你有编程或者刷题方面的问题可以提问,或者说可以分享一些技术、一些心得

第二部分:如何用leetcode科学刷题?

        前言:

                那么我们在这里会分为三个阶段:新手——入门——老手

        新手:

                新手的刷题一定要科学!科学!科学!因为如果你不去科学的刷题,你每天的刷题计划会乱掉,而且也无法在刷题中学习到新的知识。给大家看一下我刚来leetcode时不科学的样子:

                

                就只有几天,所以无法做到“科学”

                那么接下来就说说科学刷题的方法:

                        制定计划:

                                你刷题的时候一定要想好:

                                (1)每天刷几道题(比如说每天3道题就可以)

                                (2)刷题的频率(如果忙的话可以隔一天一刷,不忙的话每天都要刷)

                                (3)刷题的难度(建议选择简单)

                                

                        刷题顺序 + 学习:

                                刷题顺序:从简单开始一直从1开始往下刷(下图中的“难度”选择简单)

                                

                                  这里给大家一句话:在leetcode中的每一道题都不是白刷的! 

                                    为什么我这样说,因为首先,leetcode中的每一道题都是有自己的用处的:

                                1.两数之和 1. 两数之和 - 力扣(LeetCode)

                                        比如说这道题,做完了之后,我问你两个问题:

                                                它有什么用?如果没有用,那么有这道题干什么?

                                这道题如果细心的同学就会发现,它考察了两个部分:

                                        第一:双层循环 + 数学

                                                这个里头说白了就是让我们用两层循环去遍历数组,然后两两相加如果满足条件就输出

                                        

class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int i,j; for(i=0;i<nums.size()-1;i++) { for(j=i+1;j<nums.size();j++) { if(nums[i]+nums[j]==target) { return {i,j}; } } } return {i,j}; }; }; 

                                        第二:反方向推论:这道题其实还有另一种做法(py语言)

        比如说,我们想

                                         

                                  

                                                如果说循环到的数字与target的差在list中,那么,这个循环的数字和另一个数字就满足条件,就可以输出;

                                                

 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: resultlist = [] length = len(nums) for i in range(length): temp = target - nums[i] for j in range(i+1,length): if nums[i]+nums[j]==target: resultlist.extend([i,j]) return resultlist

   

你看,在这么一道简简单单的题里面,你就可以学到两个基础知识点,所以说 在leetcode中的每一道题都不是白刷的! 

        刷题计划推荐:

                        首先,我推荐的是“[新]动计划·编程入门”,网址「新」动计划 · 编程入门https://leetcode.cn/studyplan/primers-list/                        这个计划可以

                        1.快速熟悉leetcode刷题环境与难度

                        2.快速入门编程基础

                        

                        其次,我推荐的是“编程基础0到1”,网址

           编程基础 0 到 1https://leetcode.cn/studyplan/programming-skills/                        这个计划可以 

                        1.学习所有编程基础,帮助你在今后的刷题中不在烦恼

                        2.平时的竞赛也有帮助

                        最后,大家可以选择自己喜欢的刷题计划,这里不做推荐

       入门:

                当你成功地刷到了100多道的时候,你可以算做入门了。

                那么,入门的人就应该更上一层楼

                制定计划:

                        制定入门计划时,你要想到:

                                (1)刷题的难度(建议选择中等或较难的简单题)

                                (2)每天刷题的规律性与学习性(比如今天学习什么知识,我要刷这种题)

                  刷题顺序:

                           入门的时候基本上就不用再去跟着题库的顺序或者说跟着计划了,我想你如果已经入门了,那么你的刷题已经规律了,对吧。

                        那么这里我就不多赘述了,说一下怎么查看难度“中等”和知识点

                        1.选择难度

                                

                        难度里选择“中等”

          2.知识点,上图中的“数组(2047)”那一行有一个“展开”展开后是全部的知识点与对应题型题目,选择自己需要的即可

         开始竞赛:

                到了入门的阶段我觉得就可以开始接触比赛了(当然如果没有时间不用的哈),具体方法看上面,我估计入门就可以答出2道题了?

                说一下leetcode的竞赛:一共4道题,简单 —— 中等(简单) —— 中等 —— 困难

                然后一般是根据答出题目的数量增加分数,开始2000分

老手:

        欢迎各位来到老手阶段,老手阶段就是在入门“摸爬滚打”答了大概700多了吧。这个时候,你就没有要求了。

        所以这里我没有放任何小标题,我认为:如果你已经是一个老手的话,那么你的刷题已经非常非常规律了。所以,结束了,你的leetcode刷题以后就是你自己的事情了。

        正视一切,看向未来!

总结:

        希望屏幕前的各位看到这里,可以点个关注,因为这篇文章我写了一周(哭)。

        说一下为什么要写这篇文章,因为上周我900题了么,然后想着越来越多的人接触编程,让他们来leetcode可能是一种帮助,所以我写了这篇文章。

        我希望各位可以真的在读完之后有所收获,那么我是llloxy,我们下篇博客再见!!

Read more

【数据结构-初阶】二叉树---链式存储

【数据结构-初阶】二叉树---链式存储

🎈主页传送门:良木生香 🔥个人专栏:《C语言》 《数据结构-初阶》 《程序设计》 🌟人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离 上期回顾:在上一篇文章中,我们对二叉树的顺序存储结构进行了详细的学习,知道了二叉树的顺序存储结构方式是---也就是以堆的方式进行存储,那么我们想着,既然有顺序存储结构,那有没有链式的存储结构呢?答案是,有的兄弟,有的,那么这篇文章我们就来讲讲,二叉树的链式存储结构 目录 一、二叉树的链式结构 二、二叉树的创建 2.1、创建二叉树节点 2.2、二叉树节点的链接 三、链式二叉树的基本操作 3.1、前序遍历 3.2、中序遍历 3.3、后序遍历 3.4、计算二叉树的总结点个数 3.

By Ne0inhk
通俗易懂->哈希表详解

通俗易懂->哈希表详解

目录 一、什么是哈希表? 1.1哈希表长什么样? 1.2为什么会有哈希表? 1.3哈希表的特点 1.3.1 取余法、线性探测 1.3.2 映射 1.3.3负载因子 1.4哈希桶 1.5闲散列与开散列 1.6总结 二、设计hash表 1、哈希表的设计   1)插入   2)查找  3)删除 4)字符串哈希算法 2、封装map和set 1、完成对hash表的基础功能 2、完成封装 3、对应的迭代器 4、【】方括号重载 三、

By Ne0inhk
【动态规划】01背包与完全背包问题详解,LeetCode零钱兑换II秒解,轻松解力扣

【动态规划】01背包与完全背包问题详解,LeetCode零钱兑换II秒解,轻松解力扣

👨‍💻程序员三明治:个人主页 🔥 个人专栏: 《设计模式精解》《重学数据结构》 🤞先做到 再看见! 目录 * 01背包题目分析 * 01背包解决方法 * 完全背包题目分析 * 完全背包解决方法 * LeetCode 518.零钱兑换II * 思路 * 代码实现 01背包题目分析 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 每一件物品其实只有两个状态,取或者不取,所以可以使用回溯法搜索出所有的情况,那么时间复杂度就是O(2^n),这里的n表示物品数量。 所以暴力的解法是指数级别的时间复杂度。进而才需要动态规划的解法来进行优化! 在下面的讲解,我举一个例子: 物品为: 重量价值物品0115物品1320物品2430 01背包解决方法 递归五部曲: 1. 确定dp数组以及下标的含义:dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,

By Ne0inhk