草庐IT

LeetCode-LCR

全部标签

LeetCode - #151 颠倒字符串中的单词

前言我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到150期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:中等1.描述给你一个字符串s,颠倒字符串中单词的顺序。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔

【LeetCode-简单】剑指 Offer 29. 顺时针打印矩阵(详解)

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix= [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]剑指Offer29.顺时针打印矩阵-力扣(LeetCode)与力扣54题相同54. 螺旋矩阵思路二维数组顺时针从外往里走可以想象成:按照右-》下-》左-》上的顺序一直走,走过的地方不要走即可。1.每走过一个地方,就标记一下,这样下次就不会再走这里了2.

两种解法解决LCR 008. 长度最小的子数组【C++】

文章目录[LCR008.长度最小的子数组](https://leetcode.cn/problems/2VG8Kg/description/)解法暴力解法滑动窗口(双指针法)LCR008.长度最小的子数组解法暴力解法//暴力解法://使用双for循环依次遍历数组,罗列出所有情况,然后判断classSolution{public:intminSubArrayLen(inttarget,vectorint>&nums){//(min_length//最大的值又不超出数组元素的最大取值intmin_length=INT_MAX;intsum=0;intsize=nums.size();for(int

leetcode2434. 使用机器人打印字典序最小的字符串 出栈顺序 贪心+栈

https://leetcode.cn/problems/using-a-robot-to-print-the-lexicographically-smallest-string/        给你一个字符串s和一个机器人,机器人当前有一个空字符串t。执行以下操作之一,直到s和t都变成空字符串。请你返回纸上能写出的字典序最小的字符串:操作一:删除字符串s的第一个字符,并将该字符给机器人。机器人把这个字符添加到t的尾部。操作二:删除字符串t的最后一个字符,并将该字符给机器人。机器人将该字符写到纸上。示例1:输入:s="zza"输出:"azz"解释:用p表示写出来的字符串。一开始,p="",s=

【LeetCode】一起探究三数之和的奥秘

Problem:15.三数之和文章目录题目解析算法原理分析排序+暴力枚举+set去重排序+单调性+双指针划分思想复杂度Code题目解析首先我们来分析一下本题的思路题目说到要我们在一个整数数组中去寻找三元组,而且呢这三个数字所相加的和为0,而且呢这三个数的位置还要不一样我们以这个示例1为例来看看,我列出了3种可能性,分别是[-1,0,1]、[-1,2,-1]、[0,1,-1],不过呢我们仔细看这个题意中的概念,又可以知道这些三元组还不可以重复,那么第一个和第三个我们就需要考虑到去重💬但是要如何去求解本题呢,怎么去找出这些三元组呢?找出之后又该如何去做一个去重的操作呢?我们马上进行算法原理分析算法

单链表OJ题:LeetCode--142.环形链表Ⅱ(判断第一次入环的节点)

朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第142道单链表OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏:数据结构与算法个 人 主 页 :stackY、C语言专栏:C语言:从入门到精通LeetCode--142.环形链表Ⅱ: https://leetcode.cn/problems/linked-list-cycle-ii/description/目录1.题目介绍2.实例演示3.解题思路4.思路验证 5.其他解题方法1.题目介绍给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 nul

LeetCode - #146 LRU 缓存(Top 100)

前言本题为LeetCode前100高频题我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到145期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:中等1.描述请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCa

动态规划 0(斐波那切数列 leetcode 509)

思想动态规划的核心思想是分治,将复杂问题转换成子问题,通过子问题的迭代逐渐逼近真实问题。这个过程拆解为:(1)根据问题寻找状态(2)定义dp数组(3)明确如何选择,即状态转移方程(4)明确basecase和初始值实例斐波那切数列leetcode509一个数列由0和1开始,后面每一项数字都是前面两项数字的和。状态这是一个简单示例,问题中没有任何干扰信息,只有数字的值,状态也就是数字的值。dp数组状态是数字的值,dp数组存储状态即可。这里要注意的是dp数组下标和数字的项的关系。一种方式是二者同步,下标是从0开始的,数字的项定义为输入的n值,n>=0。[0,1]是dp数组的前两项,代表的含义是输入值

【算法——双指针】LeetCode 11 盛最多水的容器

题目描述:解题思路:        如图所示:        1、我们考虑相距最远的两个柱子所能容纳水的面积。宽度是两根柱子之间的距离8;高度取决于两根柱子之间较短的那个,即左边柱子的高度3。水的面积就是3×8=24。        2、如果选择固定一根柱子,另外一根变化,水的面积变化:当前柱子是最两侧的柱子,水的宽度为最大,其它的组合,水的宽度都比这个小。左边柱子较短,决定了水的高度为3。如果移动左边的柱子,新的水面高度不确定,一定不会超过右边的柱子高度7。 如果移动右边的柱子,新的水面高度一定不会超过左边的柱子高度3,也就是不会超过现在的水面高度。        3、因此,如果固定左边的柱

python LeetCode 刷题记录 21

题目将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。注意:是链表代码classSolution:defmergeTwoLists(self,l1:Optional[ListNode],l2:Optional[ListNode])->Optional[ListNode]:ifl1andl2:ifl1.val>l2.val:l1,l2=l2,l1l1.next=self.mergeTwoLists(l1.next,l2)returnl1orl2使用递归,比较头节点,将小的头节点指向取出,将剩下的两个链表继续传入函数,将小的头节点指向函数返回的链表。链表基