
数据结构和算法
文章平均质量分 58
进入算法的世界
Thecoastlines
努力是为了让自己不再平庸
展开
-
十大经典排序算法之插入排序及其二分优化
一、插入排序的实现1.什么是插入排序呢插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在左手上的牌总是排序好的,原来这些牌是桌子上牌堆中顶部的牌2.具体步骤第一轮:从第二位置的 6 开始比较,比前面 7 小,交换位置。第二轮:第三位置的 9 比前一位置的 7 大,无需交换位置。第三轮:第四位置的 3 比前一位置的 9 小交换原创 2021-03-05 18:09:23 · 980 阅读 · 0 评论 -
十大经典排序算法之冒泡排序及其优化
一、冒泡排序1.冒泡排序算法的原理如下:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较2.代码实现public static void sort(int[] arr) { int temp = 0; int length =原创 2021-03-05 20:39:40 · 280 阅读 · 1 评论 -
十大经典排序算法之希尔排序及其优化
一、希尔排序1.概念希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。希尔排序又称缩小增量排序,因 DL.Shell 于 1959 年提出而得名。它通过比较相距一定间隔的元素来进行,各趟比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止。2.演示选择增量 gap=length/2,缩小增量以 gap = gap/2 的方式(1)初始增量第一趟 gap = length/2 = 4(2)第二趟,增量缩小为 2(3)第三趟,增量原创 2021-03-05 21:28:09 · 721 阅读 · 0 评论 -
十大经典排序算法之选择排序及其优化
一、简单选择排序1.基本思想:在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换;。。。第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。2.过程3.代码public static void selectSort(int[] arr) { int minNum = 0; int temp = 0; int a = 0; for (i原创 2021-03-06 17:41:13 · 1121 阅读 · 0 评论 -
十大经典排序算法之快速排序及其优化
一、快速排序1.基本思想:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。2.演示以一个数组作为示例,取区间第一个数为基准数。01234567897265788604283734885初始时,i = 0; j = 9; X = a[i] = 72由于已经将 a[0] 中的数保存到 X 中,可以理解成在数原创 2021-03-06 20:42:53 · 750 阅读 · 0 评论 -
浅析一致性哈希算法的原理及实现
此时可以看到只有一小部分数据进行了重定位,所以它具有很好的容错性和扩展性,❓那么它就没一点问题吗?答案肯定不是的,在某种情况下,会出现节点倾斜的问题。二是数据可能已经被缓存,但请求却命中了不存在该数据的节点上。所以引入虚拟节点,并将虚拟机节点定位到某个物理节点上即可。一旦某个节点宕机或者加入新的节点时,导致n发生了变化,需要重新hash计算,❓当节点宕机或者添加新的节点时,它会出现什么样的结果呢?按照顺时针,第一台遇到的节点就是该数据定位到的服务器。当节点2宕机之后,数据1和数据2都重定位到了节点3上,..原创 2022-07-16 01:25:17 · 863 阅读 · 1 评论 -
【LeetCode】LeetCode之乘积为正数的最长子数组长度——暴力枚举+动态规划+Kadane算法
动态规划核心三要素:阶段:分解子问题,子问题与原问题求解过程相同状态:每个阶段都有一个或多个状态决策:根据当前的决策,确定下一阶段的状态那么怎么分析该问题呢?怎么确定状态呢?由于本题存在负负得正得情况,所以需要使用两个dp数组保存当前状态,一个是positive(正数)数组,一个是negative(负数)数组;【因为负数乘以负数有可能得到一个更大的值呀】原创 2021-12-14 21:24:51 · 631 阅读 · 4 评论 -
【LeetCode】LeetCode之乘积最大子数组——枚举+动态规划+Kadane算法
其实本质上Kadane算法还是使用的是动态规划思想,说白了它就是将动态规划的空间复杂度优化到了O(1),本质上就是动态规划。上述动态规划是使用两个dp数组作为记忆集的,我们会发现每次求解出的当前状态的结果只会被下次使用一次。所以可以通过变量每次保存当前阶段的结果,然后当求解出下一阶段的结果时,会使用该变量一次,最后计算出了下一阶段得结果,最后赋值给我当前变量即可。循环使用!原创 2021-12-14 10:35:07 · 935 阅读 · 0 评论 -
【LeetCode】LeetCode之跳跃游戏Ⅱ——暴力解法+动态规划+贪婪算法
求解f(n)无非就是求距离最后一个位置最远且可达的位置+1。那么它的dp[i]就代表当前位置的最少跳跃次数。转移方程那肯定就是dp[n]=dp[a]+1,a就代表距离n最远的那个位置的下标。【由于这个a是无法直接确定的,所以需要一个内层循环提供支持】反向查找,我们可以考虑最后一步前的位置,因此我们可以考虑最后一步跳跃前所在的位置,该位置通过跳跃能够到达最后一个位置。你可能我会说如果有多个能够达到最后一个位置,该怎么选择呢?我们肯定会选择距离最后一个位置最远的那一个。原创 2021-12-11 23:24:44 · 918 阅读 · 0 评论 -
【LeetCode】LeetCode之跳跃游戏——动态规划+贪心算法
【LeetCode】LeetCode之打家劫舍【暴力递归、动态规划、动态规划之优化空间的具体分析与实现】https://blog.youkuaiyun.com/Kevinnsm/article/details/121838892?spm=1001.2014.3001.5501【LeetCode】LeetCode之打家劫舍Ⅱ——暴力递归+动态规划解决循环问题+DP空间优化https://blog.youkuaiyun.com/Kevinnsm/article/details/121813241?spm=1001...原创 2021-12-10 21:34:12 · 301 阅读 · 0 评论 -
【LeetCode】LeetCode之删除并获得点数——动态规划、排序+动态规划
LeetCode之打家劫舍【暴力递归、动态规划、动态规划之优化空间的具体分析与实现】LeetCode之打家劫舍Ⅱ——暴力递归+动态规划解决循环问题+DP空间优化1.题目描述给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获原创 2021-12-09 22:56:32 · 690 阅读 · 0 评论 -
【LeetCode】LeetCode之打家劫舍【暴力递归、动态规划、动态规划之优化空间的具体分析与实现】
【LeetCode】LeetCode之打家劫舍【暴力递归、动态规划、动态规划之优化空间的具体分析与实现】你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1原创 2021-12-08 20:53:54 · 1231 阅读 · 0 评论 -
【LeetCode】LeetCode之打家劫舍Ⅱ——暴力递归+动态规划解决循环问题+DP空间优化
这道题和第 198 题相似,建议读者首先阅读「198. 打家劫舍」????LeetCode之打家劫舍Ⅰ:LeetCode之打家劫舍Ⅰ1.打家劫舍II 题目描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最原创 2021-12-09 13:16:54 · 2198 阅读 · 0 评论 -
实验2 递归和分治法(二分查找)
1.递归的基本思想(1)何为递归?递归顾名思义就是´递´和´归´????所谓的‘递’也就是“向下递去”,这个问题可以分解为若干个且形式相同的子问题,这些子问题可以使用相同的思路来解决。????所谓的‘归’也就是“归来的意思”,什么时候归来?所以涉及到了临界点,也就是‘递’中的分解终止条件。(2)递归的工作原理?????根据以上分析可以发现这个流程和栈的工作原理一致,递归调用就是通过栈这种数据结构完成的。整个过程实际上就是一个栈的入栈和出栈问题。然而我们并不需要关心这个栈的实现,这个过程是由系原创 2021-11-13 19:35:58 · 1135 阅读 · 2 评论 -
实验3 动态规划(0/1背包)
1.问题给定的已知N种物品和一个背包,物品的种类为wi,价值为vi,背包容量为C2.所求目标如何选择装入背包的物品,使得物品的总价值最大3.数学模型4.最优质子结构分析现将问题分为n个子问题(1)背包容量为c,从1号物品找出该问题的解(2)背包容量为c,从1、2号物品找出该问题的解(3)背包容量为c,从1、2、3号物品找出该问题的解(4)背包容量为c,从1、2、3、4号物品找出该问题的解……(5)背包容量为c,从1、2、3、4、…N号物品找出该问题的解5.建立最优值得递归关系式原创 2021-11-13 19:31:32 · 793 阅读 · 0 评论 -
实验4 贪心法(作业调度问题)
1.问题的已知设有n个独立的作业{1, 2, …, n},由m台相同的机器{M1, M2, …, Mm}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。2.所求的目标要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。3.算法步骤当n>m时,首先将n个作业从大到小排序,然后依此顺序将作业分配给空闲的处理机。也就是说从剩下的作业中,选择需要处理时间最长的,然后依次选择处理时间次长的,直到所有的作业全原创 2021-11-13 19:12:06 · 3321 阅读 · 2 评论 -
算法系列之使用赫夫曼编码的实战应用【对文件进行压缩、解压缩】
1.首先在准备一张图片2.测试压缩效果3.测试解压缩效果将桌面a.jpg删除4.源代码package com.zsh.algorithm.tree;import java.io.*;import java.util.*;/** * @author:Ronin * @since:2021/9/29 * @email:1817937322@qq.com */public class HuffmanEncrypt { public static void mai原创 2021-10-02 18:57:14 · 178 阅读 · 0 评论 -
算法系列之赫夫曼编码实战一【数据压缩、数据解压】
1.何谓赫夫曼编码?1.何谓赫夫曼编码?哈夫曼编码是一种编码方式,哈夫曼编码是可变字长编码的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。...原创 2021-10-02 18:44:36 · 202 阅读 · 0 评论 -
从计算机二进制认识哈夫曼编码【等长编码、变长编码】
1.计算机是如何存储信息的?2.等长编码2.1.等长编码的优点2.1.等长编码的缺点3.变长编码3.1.变长编码的缺点3.1.变长编码的优点4.哈夫曼编码4.1.哈夫曼编码的生成过程1.计算机是如何存储信息的?面对数不尽的中文和英文,你能识别,但计算机是无法识别的。我们都知道计算机运行过程中是需要电力进行支持的,所以计算机只能识别低电平和高电平(也就是0和1)。因此我们在计算机中看到的一切文字、图片、视频等等,底层都是使用二进制进行存储的。所以说从人能识别的图片文字到计算机能够识别的二进.原创 2021-10-02 14:27:17 · 36664 阅读 · 3 评论 -
算法系列之赫夫曼树的精解【构造流程及原理分析】
赫夫曼树又称为最优树、最优二叉树赫夫曼树百度百科https://baike.baidu.com/item/%E5%93%88%E5%A4%AB%E6%9B%BC%E6%A0%91/2305769?fromtitle=%E8%B5%AB%E5%A4%AB%E6%9B%BC%E6%A0%91&fromid=7406794&fr=aladdin????赫夫曼树相关的名词(1).路径????一个结点到另外一个结点的通路成为路径(2).路径长度????通路中原创 2021-10-02 11:18:13 · 1417 阅读 · 0 评论 -
【算法系列之线索化二叉树,前序线索化、中序线索化、后序线索化以及遍历~】
1.何谓线索化二叉树2.线索化二叉树的本质3.线索化二叉树的存储结构4.构建线索化二叉树4.1.先序线索化4.2.中序线索化4.3.后序线索化5.遍历线索化二叉树5.1.先序遍历 先序线索化二叉树5.2.中序遍历 中序线索化二叉树5.3.后序遍历 后序线索化二叉树6.线索化二叉树的优势与劣势1.何谓线索化二叉树????☠️一般的二叉树的叶子节点的指针都造成了浪费,对于有n个节点的二叉树,其中就有n+1个空链域;所以我们可以将空链域存放某种遍历次序下该节点的前驱节点和后继节点,这些指针被成为线索,原创 2021-09-28 18:59:42 · 6707 阅读 · 2 评论 -
【❤️算法系列之顺序二叉树的实现(前序遍历、中序遍历、后序遍历)❤️】
1.何为顺序二叉树2.顺序二叉树的特点3.顺序二叉树的遍历3.1.前序遍历3.2.中序遍历3.3.后序遍历4.顺序二叉树的注意点【❤️算法系列之二叉树的实现(包含前序、中序、后序遍历以及节点的查找和删除)❤️】https://blog.youkuaiyun.com/Kevinnsm/article/details/120531258?spm=1001.2014.3001.55011.何为顺序二叉树顺序二叉树本质上维护了一个数组,也就是通过数组存储实现的,适用于完全二叉树2.顺.原创 2021-09-28 17:39:32 · 166 阅读 · 0 评论 -
【❤️算法系列之二叉树的实现(包含前序、中序、后序遍历以及节点的查找和删除)❤️】
????1.何谓树???? 1.1.树的定义???? 1.2.树的特点???? 1.3.树的基本术语????2.认识二叉树???? 1.1.二叉树的定义???? 1.2.二叉树的分类???? 1.2.1.满二叉树???? 1.2.2.完全二叉树???? 1.2.3.平衡二叉树????3.二叉树的遍历???? 3.1.前序遍历???? 3.2.中序遍历???? 3.3.后序遍历????4.二叉树节点的查找???? 4.1.前序查找???? 4.2.中序查找???? 4.3.后序查找原创 2021-09-28 17:02:44 · 302 阅读 · 0 评论 -
【算法系列之万字总结常用的查找算法,持续补充更新中】
???? 作者主页:Roninaxious???? 欢迎点赞 ???? 收藏 ⭐留言 ???????? 话不多说 ????开卷! ???? 顺序查找算法???? 二分查找算法????优化二分查找算法???? 插值查找算法???? 斐波那契查找算法???? 顺序查找算法????对于顺序查找算法比较容易理解,遍历一个数组即可,如果找到该值返回对应的下标即可.????????源代码???? /** * 如果返回的是-1,则数组中无相关值 * @param arr原创 2021-09-26 23:43:25 · 160 阅读 · 0 评论 -
【☀️~爆肝万字总结递归~❤️玩转算法系列之我如何才能掌握递归解题的能力❤️~十大经典问题助你突破极限~建议收藏☀️】
????前言⚜何为递归?递归顾名思义就是´递´和´归´????所谓的‘递’也就是“向下递去”,这里的递 ????前言⚜何为递归?#原创 2021-09-24 17:06:37 · 211 阅读 · 1 评论 -
十大经典排序算法总结(够兄弟们喝一壶的)
Ⅰ、十大经典排序算法之插入排序及其二分优化:https://blog.youkuaiyun.com/Kevinnsm/article/details/114403557Ⅱ、十大经典排序算法之冒泡排序及其优化:https://blog.youkuaiyun.com/Kevinnsm/article/details/114407311Ⅲ、十大经典排序算法之希尔排序及其优化:https://blog.youkuaiyun.com/Kevinnsm/article/details/114413817Ⅳ、十大经典排序算法之选择排序及其优化:htt原创 2021-04-18 23:14:40 · 199 阅读 · 1 评论 -
模拟FCFS调度算法(先来先服务)没错,是篇好文章!
文章目录一、FCFS的介绍二、代码演示三、代码分析1.使用节点模拟进程2.SimulateFCFS(核心模拟FCFS类)3.创建一个节点为n的队列(模拟就绪队列)4.核心计算分析5.输入到达时间和服务时间(模拟进程到达和服务)6.出队列(模拟完成所以进程工作)一、FCFS的介绍先来先服务的调度算法:最简单的调度算法,既可以用于作业调度 ,也可以用于程序调度,当作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,优先从后备队列中,选择一个或多个位于队列头部的作业,把他们调入内存,分配所需原创 2021-03-19 20:04:18 · 972 阅读 · 0 评论 -
一行文章让你搞懂什么是前缀、中缀、后缀表达式以及它们之间的相互转换
一、什么前缀、中缀、后缀表达式(使用 8*(5+6)-1的例子)1.中缀表达式:8*(5+6)-1;(也就是我们平常所见的运算式)2.后缀表达式:8 5 6 + * 1 - ;计算机是怎么运算的呢?从左向右进行遍历,数字放到数据栈中,也就是8 5 6;当遍历到+号时,从数据栈中弹出两个距离+号最近的数据进行相加,也就是5 和 6,得到结果13入栈中;接着遍历,当遇到 *号时,从栈中弹出距离 *最近的两个数据进行相乘,也就是13和8,将结果104入栈中;遍历到1入数据栈,接着遍历到-号,同样从数据栈中原创 2021-02-20 21:59:31 · 851 阅读 · 1 评论 -
使用回溯算法分析八皇后问题
一、 八皇后问题?在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法?二、思路1.首先如何解决递归问题呢? *找到递推公式 *找到递归出口 2.那么递推公式是什么呢?毫无疑问,第一个皇后在二维数组的第一行,第二个皇后在二维数组的第二行·········,那么递推公式就肯定是n+1 了;3.递归出口是什么呢?一共8个皇后,那出口肯定就是下到第八个皇后呗4.考虑的细节都有哪些1.如果要计算出所有的情况,那么肯原创 2021-02-23 16:54:54 · 386 阅读 · 1 评论 -
数据结构和算法之稀疏数组
什么是稀疏数组呢?定义一个11*11的二维数组0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0原创 2021-01-26 21:14:17 · 181 阅读 · 1 评论 -
数据结构和算法之数组模拟队列
特点:先入先出(类似于银行排队问题)一、数组模拟队列package com.company;import java.util.Scanner;/** * @author:抱着鱼睡觉的喵喵 * @date:2021/1/31 * @description: the array simulate the queue */public class ArrayQueue { //test array simulate queue public static void main原创 2021-02-04 16:38:11 · 204 阅读 · 0 评论 -
数据结构和算法之单链表
package com.company;import com.sun.org.apache.xerces.internal.xs.ItemPSVI;/** * @author:抱着鱼睡觉的喵喵 * @date:2021/2/4 * @description: */public class LinkedListDemo { public static void main(String[] args) { Node node4 = new Node(4, 96, "R原创 2021-02-05 20:42:43 · 132 阅读 · 0 评论 -
迷宫问题让你深度理解递归(回溯)
前言:如何思考递归问题当你看到递归时,如果脑子里想着循环,一层层向下调用,一层层回溯,总想着计算机的每一步是怎么做的,这样就会陷入学习递归的思维误区;正确的做法是什么呢?(屏蔽递归细节)假设A问题,可以细分为BCD这三个小问题,那么我们就应该考虑BCD这三者怎么解决,然后能解决之后再考虑BCD和A的关系;例:如果要解决我坐在电影院第几排,那么就可以分成规模更小的问题,然后问题就成为了很多个前一排在哪一排的问题;求解自己在哪一排的思路和前面一排的人求解的思路一样一、对于递归问题代码怎么编写1.原创 2021-02-21 22:54:04 · 375 阅读 · 4 评论 -
LeetCode 两数之和
题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]示例 2:输入:nums = [3,2,4], target = 6输出:[1,2]原创 2021-02-07 22:00:51 · 170 阅读 · 0 评论 -
Java实现单链表的反转
思路1:初始化一个新的头节点reverseHead,然后遍历旧链表,利用头插法向reverseHead进行插入思路2:1.反转相当于数据的更换(1和n,2和n-1,3和n-2)n为链表的长度2.通过遍历进行数据的更换,n/2为循环退出的条件package com.company;import java.util.Stack;/** * @author:抱着鱼睡觉的喵喵 * @date:2021/2/4 * @description: */public class LinkedLi原创 2021-02-08 22:25:13 · 219 阅读 · 0 评论 -
Java实现单链表的逆序打印
思路1:可以将链表进行反转,然后进行数据的输出即可,单链表反转地址如下https://blog.youkuaiyun.com/Kevinnsm/article/details/113763272这个思路1肯定有很大的问题,反转之后会改变链表的结构,而且如果链表节点数过多,也会非常麻烦;思路2:毫无疑问肯定使用栈核心代码如下 public static void stackPrint(Node head) { if (head.next == null) { System.原创 2021-02-08 22:34:03 · 271 阅读 · 1 评论 -
Java实现单链表的合并(保证数据的有序性)
一、思路1.比较两个链表的大小2.将小链表插入到大链表中3.使用插入保证链表数据的有序性二、核心代码 /** * 合并两个链表,并且按照有序合并 * @param singleLinkedList1 链表1 * @param singleLinkedList2 链表2 */ public static void mergeLinkedList2(SingleLinkedList singleLinkedList1, SingleLinkedList原创 2021-02-08 22:40:45 · 525 阅读 · 1 评论 -
Java实现双向链表
package com.company;/** * @author:抱着鱼睡觉的喵喵 * @date:2021/2/9 * @description: */public class DoubleLinkedListDemo { public static void main(String[] args) { Node2 node1 = new Node2(2, 100, "李四"); Node2 node2 = new Node2(3, 99, "张三原创 2021-02-09 19:20:04 · 135 阅读 · 0 评论 -
分析约瑟夫问题(循环单链表)
1.Josephu question:设编号为1,2,3…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列2.思路1.构成一个有n个节点的单循环链表2.从第k个节点开始报数(k是第一个),当报的数等于m时停止,将该节点删除3.从上一个删除节点的下一个节点继续报数,直到所有节点删除3.代码实现方式1package com.company;原创 2021-02-11 22:40:36 · 239 阅读 · 0 评论 -
LeetCode两数相加
一、两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例2:输入:l1 = [0], l2 = [0]输出:[0]示例3:输入:l1 = [9,9,9,9,9,9,9原创 2021-02-14 22:38:44 · 292 阅读 · 0 评论