草庐IT

leetcode刷题(6)

全部标签

Day4|LeetCode 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、160.链表相交、142.环形链表

LeetCode 24.两两交换链表中的节点题目链接:24.两两交换链表中的节点-力扣(LeetCode)视频链接:帮你把链表细节学清楚!|LeetCode:24.两两交换链表中的节点_哔哩哔哩_bilibili思路给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。这种题建议画图,不然的话很多指针容易乱,最好用虚拟头结点的方式,这样就不用再进行单独处理。很多人这种题的过程容易写错,就像这道题,正确的过程如下图所示:先让cur指向虚拟头节点,然后进行以下操作 代码实现:classSolution{public:ListNode

2023-1-21 刷题情况

最少侧跳次数首先祝大家除夕快乐。题目描述给你一个长度为n的3跑道道路,它总共包含n+1个点,编号为0到n。一只青蛙从0号点第二条跑道出发,它想要跳到点n处。然而道路上可能有一些障碍。给你一个长度为n+1的数组obstacles,其中obstacles[i](取值范围从0到3)表示在点i处的obstacles[i]跑道上有一个障碍。如果obstacles[i]==0,那么点i处没有障碍。任何一个点的三条跑道中最多有一个障碍。比方说,如果obstacles[2]==1,那么说明在点2处跑道1有障碍。这只青蛙从点i跳到点i+1且跑道不变的前提是点i+1的同一跑道上没有障碍。为了躲避障碍,这只青蛙也可

算法leetcode|63. 不同路径 II(rust重拳出击)

文章目录63.不同路径II:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:63.不同路径II:一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用1和0来表示。样例1:输入: obstacleGrid=[[0,0,0],[0,1,0],[0,0,0]] 输出: 2 解释: 3x3网格的正中间有一个障碍物。 从左上角到右下角一共有2条不同的路

LeetCode-Day2-977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,

977.有序数组的平方:双指针法,原来数组是有序的,说明平房之后最左和最右两边的平方和是最大的,比较最大的插入新的vector数组,然后移动指针选下一个元素进行比较。classSolution{public:vectorsortedSquares(vector&nums){intleft=0;intright=nums.size()-1;intk=right;vectorres(nums.size(),0);while(left209:长度最小的子数组接下来就开始介绍数组操作中另一个重要的方法:滑动窗口。所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。在暴力解法

LeetCode977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

LeetCode977.有序数组的平方思路:    双指针应用    因为数组是有序的,数组中可能存在负数,所以其平方的最大值只可能是数组的头或尾,因此可以定义两个指针,i指向头,j指向尾。同时定义一个新数组result,让k指向新数组的最后一个元素,当nums[i]*nums[i]>=nums[j]*nums[j],result[k]=nums[i]*nums[i],k--,i++;nums[i]*nums[i]代码:classSolution{public:vectorsortedSquares(vector&nums){vectorresult(nums.size(),0);intk=n

LeetCode977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

LeetCode977.有序数组的平方思路:    双指针应用    因为数组是有序的,数组中可能存在负数,所以其平方的最大值只可能是数组的头或尾,因此可以定义两个指针,i指向头,j指向尾。同时定义一个新数组result,让k指向新数组的最后一个元素,当nums[i]*nums[i]>=nums[j]*nums[j],result[k]=nums[i]*nums[i],k--,i++;nums[i]*nums[i]代码:classSolution{public:vectorsortedSquares(vector&nums){vectorresult(nums.size(),0);intk=n

2022.02.15_每日一题 leetcode.690

题目描述690.员工的重要性给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度和直系下属的id。比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15,10,5。那么员工1的数据结构是[1,15,[2]],员工2的数据结构是[2,10,[3]],员工3的数据结构是[3,5,[]]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数据结构中。现在输入一个公司的所有员工信息,以及单个员工id,返回这个员工和他所有下属的重要度之和。示例:输入:[[1,5,[2,3]],[2,3,[]],[3,3,[]]],1输出:11解释:员工1自身的

二叉树OJ题:LeetCode--226.翻转二叉树

朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第226道二叉树OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!数据结构与算法专栏:数据结构与算法个 人 主 页 :stackY、C语言专栏:C语言:从入门到精通LeetCode--226.翻转二叉树:https://leetcode.cn/problems/invert-binary-tree/目录1.题目介绍2.实例演示3.解题思路代码演示:1.题目介绍给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。2.实例演示 简单来说就是将一棵二叉树的左右子树交换位置。3.解题思路翻转二叉

LeetCode题解:数组的最大美丽值

⭐简单说两句⭐CSDN个人主页:后端小知识🔎GZH:后端小知识🎉欢迎关注🔎点赞👍收藏⭐️留言📝好久没打力扣周赛了,今天做了下,以前都是可以肝三个题的,今天第二题就卡住了😭😭😭下面我就浅浅分析下这个题吧,我一定能给你讲明白的😀😀😀我们先来康康题目的意思啦,为了方便观看,我直接到力扣那里截了个屏过来✅划重点这道题免费哟,直接上链接🥰🥰🥰:数组的最大美丽值题目都看完了吧?我们现在来聊聊这道题的思路思路这道题如果采用常规的暴力法去做的话,是肯定的会TLE(超时)的,别问怎么知道的,因为尝试过了😤😤😤,其实看看这数据范围也知道,暴力法会超时~那我们可以怎么优化呢,且听我徐徐道来重点:我们对数组从小到大排

算法刷题Day14 二叉树的前序、中序、后序遍历(递归、迭代、统一迭代方法)

Day14二叉树二叉树的定义/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*TreeNode(intx,TreeNode*left,TreeNode*right):val(x),left(left),right(right){}*};*/前序遍历递归classSol