力扣题解
文章平均质量分 51
刷题的解法python
疼痛文学小青年
当你全心全意投入进一件事情时,你会发现全世界都好像在帮你。越努力越幸运^_^
展开
-
数据结构之排序算法(python)
十大经典排序算法 数据结构中的十大经典算法:冒泡排序、快速排序、简单插入排序、希尔排序、简单选择排序、堆排序、归并排序、计数排序、桶排序、基数排序十大经典算法的复杂度和稳定性(如果a原本在b前面,而a=b,排序之后a仍然在b的前面):一、交换排序1、冒泡排序(前后比较-交换)(1)算法思想它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成...原创 2021-08-16 20:40:23 · 1384 阅读 · 1 评论 -
力扣【剑指offer】题目汇总与总结
本文为《剑指offer》刷题笔记的总结,花费不到两个月的时间将力扣上《剑指offer》的75道题刷了一遍,遇到不会的知识点或者应该做一些记录的题目都将其写在了往日的博客里。整体来看,这75道题,涉及到常用的数据结构:数组、字符串、链表、栈、队列、树、图,还有一些常用的数据操作和算法:二分法、哈希表、递归、排序、查找、位运算、动态规划、回溯、滑动窗口、双指针、深度优先搜素(DFS)、贪心。1、数组(1)剑指offer03.数组中重复的数字。(2)剑指offer04.二维数组中的查找。解法:找标原创 2021-08-06 19:53:52 · 32701 阅读 · 5 评论 -
剑指offer63.股票的最大利润(贪心算法)
题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4] 输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:输入: [7,6,4,3,1] 输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。限制:0 <...原创 2021-08-05 11:23:19 · 334 阅读 · 0 评论 -
剑指offer62.圆圈中最后剩下的数字(约瑟夫环问题)
题目:0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3 输出:3示例 2:输入: n = 10, m = 17 输出:2限制:1 <= n<= 10^5 ...原创 2021-08-05 09:47:26 · 216 阅读 · 0 评论 -
剑指offer60.n个骰子的点数(动态规划)
题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。示例 1:输入: 1 输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例2:输入: 2 输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0...转载 2021-08-04 21:54:41 · 230 阅读 · 0 评论 -
剑指offer57-II.和为s的连续正数序列(滑动窗口)
题目:输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9 输出:[[2,3,4],[4,5]]示例 2:输入:target = 15 输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5解题思路:滑动窗口可以看成数组中框起来的一个部分。本题来看,数组就是正整数序列[1,...原创 2021-08-04 18:59:59 · 158 阅读 · 0 评论 -
剑指offer44.数字序列中某一位的数字(找规律)
题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。示例 1:输入:n = 3 输出:3示例 2:输入:n = 11 输出:0限制:0 <= n <2^31解题思路:根据序列找规律:得到规律:除0外,个位数9个占9*10(1)*1//10个位置,十位数90个占9*10*(2)*2//10个位置,...原创 2021-08-04 11:11:24 · 207 阅读 · 0 评论 -
剑指offer38.字符串的排列(DFS+剪枝)
题目:输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例: 输入:s = "abc" 输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8解题思路:对于一个长度为n的字符串(假设字符互不重复),其排列方案数共有n!种。根据字符串排列的特点,考虑二叉树中深度优先搜索所有排列方案,即通过字符交换,先固定第1位字符(n种情况)、再固定第2位...转载 2021-08-03 22:16:44 · 207 阅读 · 0 评论 -
剑指offer41.数据流中的中位数(小顶堆和大顶堆)
题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4]的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的...转载 2021-08-03 10:14:37 · 245 阅读 · 0 评论 -
剑指offer37.序列化二叉树(DFS深度优先搜索)
题目:请实现两个函数,分别用来序列化和反序列化二叉树。你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示:输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅LeetCode 序列化二叉树的格式。你并非必须采取这种方式,你也可以采用其他的方法解决这个问题。示例:输入:root = [1,2,3,null,null,4,5]输出:[1,2.原创 2021-08-02 20:20:37 · 134 阅读 · 0 评论 -
剑指offer36.二叉搜索树与双向链表(中序遍历)
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。特别地,我们希望可以就地完成转换操作。当转化完成以后,树中节转载 2021-08-02 16:43:40 · 130 阅读 · 0 评论 -
剑指offer34.二叉树中和为某一值的路径(回溯法)
题目:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和target = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,2]...原创 2021-08-02 10:45:47 · 108 阅读 · 0 评论 -
剑指Offer 33. 二叉搜索树的后序遍历序列(划分左右子树递归)
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \1 3示例 1:输入: [1,6,3,2,5] 输出: false示例 2:输入: [1,3,2,6,5] 输出: true解题思路:在二叉搜索树中,左子树的元素必小于根,右子树的元素必大于根。所以从头开始遍历知道第一个比根节点...原创 2021-07-31 22:02:38 · 211 阅读 · 0 评论 -
力扣--根据前序、中序和后序来重建二叉树
二叉树的前序、中序和后序遍历:前序:根节点、左子树、右子树 中序:左子树、根节点、右子树 后序:左子树、右子树、根节点一、根据前序和中序来重建二叉树(剑指offer07题)1、题目:输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。2、示例Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,原创 2021-07-31 17:48:26 · 388 阅读 · 0 评论 -
剑指offer55-II.平衡二叉树(后序遍历)
题目:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3 3 / \4 4...转载 2021-07-22 16:41:28 · 131 阅读 · 0 评论 -
剑指offer26.树的子结构(先序遍历)
题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7]]提示:节点总数 <= 1000解题思路:...原创 2021-07-31 19:43:21 · 142 阅读 · 0 评论 -
剑指offer32-III.从上到下打印二叉树(双端队列)
题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7]]提示:节点总数 <= 1000解题思路:...原创 2021-07-22 11:38:26 · 134 阅读 · 0 评论 -
力扣--235.二叉搜索树的最近公共祖先(递归和迭代法)
题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root =[6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8 输...转载 2021-07-21 12:15:37 · 109 阅读 · 0 评论 -
剑指offer68-II:二叉树的最近公共祖先(后序遍历--回溯)
题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树:root =[3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输...转载 2021-07-20 22:21:02 · 345 阅读 · 0 评论 -
剑指offer28.对称的二叉树(后序遍历)
题目:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的:1/ \2 2\ \3 3示例 1:输入:root = [1,2,2,3,4,4,3] 输出:true示例 2:输...转载 2021-07-20 19:53:31 · 119 阅读 · 0 评论 -
力扣--二叉树知识点
一、理论基础1、二叉树的种类(1)满二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。(2)完全二叉树完全二叉树:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。,若最底层为第h层,则该层包含1~2^h-1个节点。(3)二叉搜索树前面的树都没有数...转载 2021-07-20 14:47:52 · 1104 阅读 · 0 评论 -
剑指offer31.栈的压入、弹出序列(栈的压入与弹出)
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3),转载 2021-07-19 16:05:48 · 124 阅读 · 0 评论 -
力扣--626.换座位
题目:小美是一所中学的信息科技老师,她有一张 seat座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的id是连续递增的,小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query来输出小美想要的结果呢?示例:+---------+---------+| id | student |+---------+---------+| 1 | Abbot || 2 | Doris || 3 | Emers...原创 2021-07-19 09:11:37 · 224 阅读 · 0 评论 -
力扣--601.体育馆的人流量
题目:表:Stadium+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || visit_date | date || people | int |+---------------+---------+visit_date 是表的主键每日人流量信息被记录在这三列信息中:序号 (id)、日期...原创 2021-07-18 21:54:57 · 97 阅读 · 1 评论 -
力扣--262.行程和用户
题目:表:Trips+-------------+----------+| Column Name | Type |+-------------+----------+| Id | int || Client_Id | int || Driver_Id | int || City_Id | int || Status | enum || Request_at | date | ...原创 2021-07-18 20:41:23 · 183 阅读 · 0 评论 -
剑指offer46.把数字翻译成字符串(动态规划)
题目:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258 输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"提示:0 <= num < 231解题思路:根据题意,可总结出递推公式(即...转载 2021-07-18 19:07:12 · 138 阅读 · 0 评论 -
剑指offer67.把字符串转换为整数(大数越界)
题目:写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则转载 2021-07-18 15:52:45 · 300 阅读 · 0 评论 -
剑指offer19.正则表达式匹配(动态规划)
题目:请实现一个函数用来匹配包含'. '和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"和"ab*a"均不匹配。示例 1:输入:s = "aa" p = "a" 输出: false 解释: "a" 无法匹配 "aa" 整个字符串。示例 2:输入: s = "aa" p = "a*" 输出...转载 2021-07-16 21:48:24 · 191 阅读 · 0 评论 -
力扣--字符串中常见经典算法
线性存储的一组数据(默认为字符)。包括一些特殊的操作集:求串的长度 比较两串是否相等 两串相接 求子串 插入子串 匹配子串 删除子串1.KMP算法KMP是(Knuth、Morris、Pratt三个名字的缩写),它用于字符串的模式匹配,也就是找到模式字符串在目标字符串的第一次出现的位置。涉及到的力扣题目为:28.实现 strStr()。暴力算法也就是我们能想到的最简单的办法,其是蛮力的一个字符一个字符的匹配,但那样的时间复杂度为O(M*n),而KMP解决了这一个问题,降低时...原创 2021-07-16 16:04:49 · 542 阅读 · 0 评论 -
剑指offer45.把数组排成最小的数(快速排序)
题目:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2] 输出: "102"示例2:输入: [3,30,34,5,9] 输出: "3033459"提示: 0 < nums.length <= 100说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数;拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0解题思路:此题求拼接起来的最小数字,本质上是一个排序问题。设数组num...转载 2021-07-15 22:21:25 · 253 阅读 · 0 评论 -
剑指offer58-I.反转单词顺序(双指针)
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输...原创 2021-07-15 15:26:47 · 175 阅读 · 0 评论 -
力扣--1.两数之和(哈希表)
题目:给定一个整数数组 nums和一个整数目标值target,请你在该数组中找出 和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9 输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = ...原创 2021-07-14 21:58:51 · 267 阅读 · 0 评论 -
力扣--349.两个数组的交集(哈希表)
题目:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。解题思路:本题和350.求两数组的交集II有区别,本题采用python当中的set中的差集(-)、交集(&)和合集(|)方法就可以解决。...原创 2021-07-14 19:30:07 · 149 阅读 · 0 评论 -
力扣--350.两个数组的交集II(哈希表)
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2]示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。解题思路:有两种方法:哈希表、排序+双指针,但是如果nums2的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加...原创 2021-07-14 17:12:25 · 160 阅读 · 0 评论 -
剑指offer48.最长不含重复字符的子字符串(滑动窗口+哈希表)
题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是 子串 的...转载 2021-07-13 22:19:28 · 132 阅读 · 0 评论 -
剑指offer50.第一个出现一次的字符(哈希表)
题目:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = "abaccdeff",返回 "b" ; s = "" ,返回 " "限制:0 <= s 的长度 <= 50000解题思路:首先遍历字符串s,使用哈希表统计“各字符数量是否>1”,然后再遍历字符串s,在哈希表中找到首个“数量为1的字符”。步骤:初始化: 字典 (Python)、HashMap(Java)、map(C++),记为 dic ; 字符.原创 2021-07-13 20:51:01 · 160 阅读 · 0 评论 -
力扣知识点--哈希表
1.理论基础(1)含义哈希表,又叫散列表,它是根据关键码的值而直接进行访问的数据结构。直白来说,其实数组就是一张哈希表,哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素。一般哈希表都是用来快速判断一个元素是否出现在集合里,假如要查询一个名字是否在这所学校里,要枚举的话时间复杂度是O(N),但使用哈希表则只需O(1)。只需要初始化把这所学校里学生的名字都存在哈希表里,在查询的时候通过索引直接就可以知道这位同学是否在这所学校里。而将学生姓名映射到哈希表上就涉及到哈希函数。当我们遇到原创 2021-07-13 19:31:41 · 649 阅读 · 0 评论 -
剑指offer35.复杂链表的复制(拼接+拆分)
题目:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]] 输出:[[1,1],[2,1]]示...原创 2021-07-13 16:46:27 · 150 阅读 · 0 评论 -
剑指offer22.链表中倒数第k个节点(双指针)
题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5.解题思路:本题考查双指针。原本我的思路是先统计一下链表长度,然后再设置一个指针走(n-k)步,但是比较...原创 2021-07-12 22:00:25 · 136 阅读 · 0 评论 -
力扣--链表知识点
含义:链表是一种通过指针串联在一起的线性结构,每一个节点是有两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针)。链表的入口点成为头结点(head)。链表的节点在内存中是分散存储的,通过指针连在一起。它的长度可以是不固定的,并且可以动态增删,适合数据量不固定,频繁增删,较少查询的场景。类型:(1)单链表:刚才所讲的含义中就是单链表。(2)双链表: 双链表是指每一个节点有两个指针域,一个指向下一个节点...原创 2021-07-08 22:11:58 · 692 阅读 · 0 评论