草庐IT

leetCode

全部标签

leetcode583 两个字符串的删除操作

题目给定两个单词word1和word2,返回使得word1和word2相同所需的最小步数。每步可以删除任意一个字符串中的一个字符。示例输入:word1=“sea”,word2=“eat”输出:2解释:第一步将“sea”变为“ea”,第二步将"eat"变为“ea”解析这道题和上一道不同的地方在于,本题是两个字符串都可以删除,整体思路和之前的一样;用动归五部曲分析下:1.确定dp数组及其含义dp[i][j]表示,以i-1结尾的字符串word1和以j-1结尾的字符串word2,要想达到相等,需要删除元素的最少次数2.确定递推公式还是分两个部分:当word1[i-1]与word2[j-1]相同的时候,

LeetCode——矩阵中移动的最大次数

目录1、题目 2、题目解读 3、代码1、题目2684.矩阵中移动的最大次数-力扣(Leetcode)给你一个下标从 0 开始、大小为 mxn 的矩阵 grid ,矩阵由若干 正 整数组成。你可以从矩阵第一列中的 任一 单元格出发,按以下方式遍历 grid :从单元格 (row,col) 可以移动到 (row-1,col+1)、(row,col+1) 和 (row+1,col+1) 三个单元格中任一满足值 严格 大于当前单元格的单元格。返回你在矩阵中能够 移动 的 最大 次数。示例1:输入:grid=[[2,4,3,5],[5,4,9,3],[3,4,2,11],[10,9,13,15]]输出:

【数据结构与算法篇】栈与队列(详解)附加Leetcode经典笔试题

​👻内容专栏:《数据结构与算法专栏》🐨本文概括:讲述数据结构栈与队列基本知识。🐼本文作者:花碟🐸发布时间:2023.5.23文章目录一、栈1.栈的概念及结构2.栈的实现二、有效的括号三、队列1.队列的概念及结构2.队列的实现四、经典笔试题1.用队列实现栈2.用栈实现队列一、栈1.栈的概念及结构😉详解栈相关的知识可以跳转到这篇文章👉:探秘函数栈帧:『揭开函数栈帧创建与销毁的神秘面纱』栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的原则。就像我们往一个杯子里面

备战秋招,LeetCode算法大总结,啃下这块硬骨头

文章目录前言🚀1.算法性能分析🌈1.1时间复杂度🚀2.数组🌈2.1数组理论🌈2.2二分法🌈2.3双指针法🚀3.链表🌈3.1链表理论🌈3.2删除链表节点🚀4.哈希表🌈4.1哈希理论🌈4.2两数之合🚀5.栈和队列🚀6.二叉树🌈6.1满二叉树🌈6.2完全二叉树🚀7.回溯法🚀7.贪心算法🚀8.动态规划前言算法是程序员的内功,掌握算法不仅能帮助你在面试中过关斩将,赢取DreamOffer,更能充分锻炼你的逻辑思维与底层能力,我是一名忠实的Leetcode用户,积累的一些个人经验,尽可能地帮助大家少走弯路。🚀1.算法性能分析🌈1.1时间复杂度相信每一位录友都接触过时间复杂度,但又对时间复杂度的认识处于一种

LeetCode-230-二叉搜索树中第K小的元素

二叉搜索树中第K小的元素题目描述:给定一个二叉搜索树的根节点root,和一个整数k,请你设计一个算法查找其中第k个最小元素(从1开始计数)。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:二叉树的中序遍历二叉搜索树的特性即中序遍历结果就是节点的顺序排列,所以通过中序遍历的方式来查找第k个最小元素,处理过程如下:首先判断特殊情况,如果二叉树为空,说明没有第K小的节点,直接返回

( 数组) 209. 长度最小的子数组——【Leetcode每日一题】

❓209.长度最小的子数组难度:中等给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其和≥target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。示例1:输入:target=7,nums=[2,3,1,2,4,3]输出:2解释:子数组[4,3]是该条件下的长度最小的子数组。示例2:输入:target=4,nums=[1,4,4]输出:1示例3:输入:target=11,nums=[1,1,1,1,1,1,1,1]输出:0提示:11target10911nums.length10

( 动态规划) 674. 最长连续递增序列 / 718. 最长重复子数组——【Leetcode每日一题】

题目一(贪心)❓674.最长连续递增序列难度:简单给定一个未经排序的整数数组,找到最长且连续递增的子序列,并返回该序列的长度。连续递增的子序列可以由两个下标l和r(l确定,如果对于每个l,都有nums[i],那么子序列[nums[l],nums[l+1],...,nums[r-1],nums[r]]就是连续递增子序列。示例1:输入:nums=[1,3,5,4,7]输出:3解释:最长连续递增序列是[1,3,5],长度为3。尽管[1,3,5,7]也是升序的子序列,但它不是连续的,因为5和7在原数组里被4隔开。示例2:输入:nums=[2,2,2,2,2]输出:1解释:最长连续递增序列是[2],长度

代码随想录刷题第6天|哈希表 LeetCode242、LeetCode349、LeetCode202、LeetCode1

1、LeetCode242有效的字母异位词题目链接:242、有效的字母异位词用哈希表,record[s[i]-'a']++,record[t[i]-'a']--,最后判断record里是否有元素不为0。classSolution{public:boolisAnagram(strings,stringt){intrecord[26]={0};for(inti=0;i2、LeetCode349、两个数组的交集题目链接:349、两个数组的交集题目如果没有限制数值的大小,就无法使用数组来做哈希表。如果哈希值比较少、特别分散、跨度非常大,使用数组就造成空间的极大浪费。此时就要使用另一种结构体set。cl

【LeetCode: 剑指 Offer 60. n个骰子的点数 | 数学+ 暴力递归=>记忆化搜索=>动态规划】

🍎作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎🍎座右铭:人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯🎯目录题目链接题目描述求解思路&实现代码&运行结果暴力递归求解思路实现代码运行结果记忆化搜索求解思路实现代码运行结果动态规划求解思路实现代码运行结果共勉题目链接剑指Offer60.n个骰子的点数题目描述把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第i个元素代表这n个骰子所

Leetcode 2029. 石子游戏 IX

Alice和Bob再次设计了一款新的石子游戏。现有一行n个石子,每个石子都有一个关联的数字表示它的价值。给你一个整数数组 stones ,其中 stones[i] 是第 i 个石子的价值。Alice和Bob轮流进行自己的回合,Alice 先手。每一回合,玩家需要从 stones 中移除任一石子。如果玩家移除石子后,导致 所有已移除石子 的价值 总和 可以被3整除,那么该玩家就 输掉游戏 。如果不满足上一条,且移除后没有任何剩余的石子,那么Bob将会直接获胜(即便是在Alice的回合)。假设两位玩家均采用 最佳 决策。如果Alice获胜,返回 true ;如果Bob获胜,返回 false 。示例