草庐IT

leetcode刷题(6)

全部标签

LeetCode 142.环形链表II

文章目录💡题目分析💡解题思路💡深度思考🔔接口源码题目链接👉LeetCode142.环形链表II👈💡题目分析给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是-1,则在该链表中没有环。注意:pos不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改链表。💡解题思路先使用快慢指针找到相遇点(定义两个指针,一个快指针、一个慢指针,让快指针一次走一步,慢指针一次走两步,如

算法leetcode|72. 编辑距离(rust重拳出击)

文章目录72.编辑距离:样例1:样例2:提示:分析:题解:rust:二维数组(易懂)滚动数组(更加优化的内存空间)go:c++:python:java:72.编辑距离:给你两个单词word1和word2,请返回将word1转换成word2所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符样例1:输入: word1="horse",word2="ros" 输出: 3 解释: horse->rorse(将'h'替换为'r') rorse->rose(删除'r') rose->ros(删除'e')样例2:输入: word1="intention",wor

【LeetCode 训练营 3,5】无重复字符的最长子串+最长回文子串

 💌博客内容:LeetCode训练营 😀作  者:陈大大陈🚀个人简介:一个正在努力学技术的准前端,专注基础和实战分享,欢迎私信!💖欢迎大家:这里是CSDN,我总结知识和写笔记的地方,喜欢的话请三连,有问题请私信😘😘😘目录3. 无重复字符的最长子串我的思路 源码 5. 最长回文子串我的思路源码 后记3. 无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。示例2:输入:s="bbbbb"输出:1解释:因为无重复字符的最长子串是"b",所以其长度为1。示

【牛客刷题HJ16】购物单

目录一、题目描述二、题目分析1、题目理解2、题目分析(1)首先,将物品类准备好(2)然后,对v、p、q进行初始化(3)对动态规划数组进行赋值(填表)三、总结一、题目描述来源:购物单_牛客题霸_牛客网 二、题目分析该题类似于0-1背包问题,关于0-1背包请看0-1背包-动态规划算法_哔哩哔哩_bilibili1、题目理解1、购买附件必须买主件,且一个主件最多有两个附件,每件物品只能购买一次;2、每件物品有三个属性:价格v、重要度p、是主件还是附件q,满意度是价格v和重要度p的数学期望,q为该附件所属主件的编号,q=0表示该物品是主件;3、手中有N元钱,要买m件物品,使得产生的满意度最大。2、题目

LeetCode每日一题——1691. 堆叠长方体的最大高度

LeetCode每日一题系列题目:828.统计子串中的唯一字符难度:困难文章目录LeetCode每日一题系列题目示例思路题解题目给你n个长方体cuboids,其中第i个长方体的长宽高表示为cuboids[i]=[widthi,lengthi,heighti](下标从0开始)。请你从cuboids选出一个子集,并将它们堆叠起来。如果widthi返回堆叠长方体cuboids可以得到的最大高度。示例思路排序加动态规划:首先我们将所有长方体的长宽高按照从小到大的顺序排放,形如[3,4,5]的格式,最大的元素为高度,其他俩任意分为长和宽。在将整个长方体数组按照从小到大的顺序排列,这里默认是按照数组的第一

【蓝桥刷题】——如何轻松拿捏必考数论题?(第三弹)

 大家好,我是爱分享的小蓝,欢迎交流指正~ 全文目录🧭🏆算式900⭐🚀传送锚点 💡思路点拨🍞代码详解  🏆神奇算式⭐⭐🚀传送锚点 💡思路点拨🍞代码详解  🏆带分数⭐⭐⭐🚀传送锚点​​ 💡思路点拨🍞代码详解  🏆算式900⭐🚀传送锚点​(□□□□-□□□□)*□□=900​(5012-4987)*36=900​ 💡思路点拨1、审题:先看题目给出的条件:“这 10 个方块刚好包含了 0 ~ 9 中的所有数字”。2、建模:看到熟悉的题目条件,条件反射全排列函数permutations(╹ڡ╹)3、判断:枚举所有排列情况,用字符串分割出方块a,b,c=int(s[:4]),int(s[4:8]),in

算法leetcode|71. 简化路径(rust重拳出击)

文章目录71.简化路径:样例1:样例2:样例3:样例4:提示:分析:题解:rust:go:c++:python:java:71.简化路径:给你一个字符串path,表示指向某一文件或目录的Unix风格绝对路径(以'/'开头),请你将其转化为更加简洁的规范路径。在Unix风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点(..)表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,'//')都被视为单个斜杠'/'。对于此问题,任何其他格式的点(例如,'...')均被视为文件/目录名称。请注意,返回的规范路径必须遵循下述格式:始终以斜杠'/'开头

3.你所不知道的go语言控制语句——Leetcode习题69

目录本篇前瞻Leetcode习题9题目描述代码编写控制结构顺序结构(Sequence)声明和赋值多返回值赋值运算符算术运算符位运算符逻辑运算分支结构if语句switch语句逻辑表达式fallthrough类型推断循环语句continuebreakgotoLeetcode习题69题目描述题目分析代码编写本篇小结下篇预告本篇前瞻好的,现在你已经来到一个新的小结,在这里你将学习到go语言的重要内容,习得go25个关键字中的12个:var,const,if,else,switch,case,default,fallthrough,for,break,goto,continue,即在顺序结构学习var,

LeetCode 160.相交链表

文章目录💡题目分析💡解题思路🚩步骤一:找尾节点🚩步骤二:判断尾节点是否相等🚩步骤三:找交点🍄思路1🍄思路2🔔接口源码题目链接👉LeetCode160.相交链表👈💡题目分析给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。💡解题思路🚩步骤一:找尾节点 structListNode*tailA=headA;structListNode*tailB=headB;intlenA=1,lenB=1;while(tailA){tailA=tailA->next;lenA++;}while(tailB){tailB=tailB->

LeetCode 21.合并两个有序链表

文章目录💡题目分析💡解题思路🚩思路1:归并排序思想(不使用带哨兵卫的头节点)🔔接口源码:💡解题思路🚩思路2:归并排序思想(使用带哨兵卫的头节点)🔔接口源码:题目链接👉LeetCode21.合并两个有序链表👈💡题目分析将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。💡解题思路🚩思路1:归并排序思想(不使用带哨兵卫的头节点)取小的进行尾插👇图解👇🔔接口源码:structListNode*mergeTwoLists(structListNode*list1,structListNode*list2){ //考虑list1和list2其中一个为空的情况if(