学习目标:了解动态规划学习内容: 1.LeetCode509.斐波那契数https://leetcode.cn/problems/fibonacci-number/ 2.LeetCode70.爬楼梯https://leetcode.cn/problems/climbing-stairs/ 3.LeetCode746.使用最小花费爬楼梯https://leetcode.cn/problems/min-cost-climbing-stairs/学习产出:能够独立解决上面三道入门级动态规划题1.LeetCode509.斐波那契数1.动态规划classSolution{public:intfib(in
学习目标:了解动态规划学习内容: 1.LeetCode509.斐波那契数https://leetcode.cn/problems/fibonacci-number/ 2.LeetCode70.爬楼梯https://leetcode.cn/problems/climbing-stairs/ 3.LeetCode746.使用最小花费爬楼梯https://leetcode.cn/problems/min-cost-climbing-stairs/学习产出:能够独立解决上面三道入门级动态规划题1.LeetCode509.斐波那契数1.动态规划classSolution{public:intfib(in
各位朋友们大家好,今天是我leedcode刷题系列的第三篇,废话不多说,直接进入主题。文章目录分割链表题目要求用例输入提示做题思路c语言代码实现Java代码实现相交链表题目要求用例输入提示做题思路c语言实现代码Java代码实现分割链表leetcode之分割链表(难度:中等)题目要求给你一个链表的头节点head和一个特定值x,请你对链表进行分隔,使得所有小于x的节点都出现在大于或等于x的节点之前。你不需要保留每个分区中各节点的初始相对位置。用例输入示例1:输入:head=[1,4,3,2,5,2],x=3输出:[1,2,2,4,3,5]示例2:输入:head=[2,1],x=2输出:[1,2]这
各位朋友们大家好,今天是我leedcode刷题系列的第三篇,废话不多说,直接进入主题。文章目录分割链表题目要求用例输入提示做题思路c语言代码实现Java代码实现相交链表题目要求用例输入提示做题思路c语言实现代码Java代码实现分割链表leetcode之分割链表(难度:中等)题目要求给你一个链表的头节点head和一个特定值x,请你对链表进行分隔,使得所有小于x的节点都出现在大于或等于x的节点之前。你不需要保留每个分区中各节点的初始相对位置。用例输入示例1:输入:head=[1,4,3,2,5,2],x=3输出:[1,2,2,4,3,5]示例2:输入:head=[2,1],x=2输出:[1,2]这
Leetcode977-有序数组的平方|LeetCode209-长度最小的子数组|Leetcode59-螺旋矩阵Leetcode977-有序数组的平方给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100],排序后,数组变为[0,1,9,16,100]示例2:输入:nums=[-7,-3,2,3,11]输出:[4,9,9,49,121]方法一-双指针法classSolution{public:vectorint>so
## LeetCode704-二分查找-题目描述:给定一个n个元素有序的(升序)整型数组nums和一个目标值target,-写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。给定一个n个元素有序的(升序)整型数组nums和一个目标值target ,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。-题目链接:leetcode.cn/problems/bi…-解题思路: 用二分法。从中间开始查找,根据target值的大小改变left和right的值-二分法使用条件:1.查找的是有序的数组2.没有重复的元素方法1: 左闭右闭区间[left,r
LeetCode 24.两两交换链表中的节点题目链接:24.两两交换链表中的节点-力扣(LeetCode)视频链接:帮你把链表细节学清楚!|LeetCode:24.两两交换链表中的节点_哔哩哔哩_bilibili思路给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。这种题建议画图,不然的话很多指针容易乱,最好用虚拟头结点的方式,这样就不用再进行单独处理。很多人这种题的过程容易写错,就像这道题,正确的过程如下图所示:先让cur指向虚拟头节点,然后进行以下操作 代码实现:classSolution{public:ListNode
977.有序数组的平方思路:数组是非递减的,因此数组的单调性呈V形,数组平方的最大值肯定出现在边界,所以我们可以对边界进行检查,将平方数大的插入新的数组的尾部。问题:可能受到了移除元素那题的影响,刚开始一直把自己局限在空间复杂度O(1)且时间复杂度O(N)的方法(即只在原数组进行操作),最后才发现不可行浪费时间。算法完成过程中可能是写迷糊了,犯了很多低级错误,包括比较条件没用平方,进行操作后两个指针没有更新。说明在检查过程没有行程统一的习惯。classSolution{public:vectorsortedSquares(vector&nums){intn=nums.size();inti=0
977.有序数组的平方思路:数组是非递减的,因此数组的单调性呈V形,数组平方的最大值肯定出现在边界,所以我们可以对边界进行检查,将平方数大的插入新的数组的尾部。问题:可能受到了移除元素那题的影响,刚开始一直把自己局限在空间复杂度O(1)且时间复杂度O(N)的方法(即只在原数组进行操作),最后才发现不可行浪费时间。算法完成过程中可能是写迷糊了,犯了很多低级错误,包括比较条件没用平方,进行操作后两个指针没有更新。说明在检查过程没有行程统一的习惯。classSolution{public:vectorsortedSquares(vector&nums){intn=nums.size();inti=0
文章目录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条不同的路