草庐IT

Leetcode

全部标签

LeetCode-392. 判断子序列

目录题目思路动态规划题目来源392.判断子序列题目思路这道算是编辑距离的入门题目,因为从题意中我们也可以发现,只需要计算删除的情况,不用考虑增加和替换的情况。动态规划1.确定dp数组(dptable)以及下标的含义dp[i][j]表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。注意这里是判断s是否为t的子序列。即t的长度是大于等于s的。2.确定递推公式在确定递推公式的时候,首先要考虑如下两种操作if(s[i-1]==t[j-1])t中找到了一个字符在s中也出现了if(s[i-1]!=t[j-1])相当于t要删除元素,继续匹配if(s[i-1

LeetCode 每日一题 Day 62 - 75

1686.石子游戏VIAlice和Bob轮流玩一个游戏,Alice先手。一堆石子里总共有n个石子,轮到某个玩家时,他可以移出一个石子并得到这个石子的价值。Alice和Bob对石子价值有不一样的的评判标准。双方都知道对方的评判标准。给你两个长度为n的整数数组aliceValues和bobValues。aliceValues[i]和bobValues[i]分别表示Alice和Bob认为第i个石子的价值。所有石子都被取完后,得分较高的人为胜者。如果两个玩家得分相同,那么为平局。两位玩家都会采用最优策略进行游戏。请你推断游戏的结果,用如下的方式表示:如果Alice赢,返回1。如果Bob赢,返回-1。如

LeetCode第 123 场双周赛个人题解

目录一、100222. 三角形类型II1、原题链接2、题目描述3、思路分析4、代码详解二、100194. 人员站位的方案数I1、原题链接2、题目描述3、思路分析4、代码详解三、100183. 最大好子数组和1、原题链接2、题目描述3、思路分析4、代码详解四、100193. 人员站位的方案数II1、原题链接2、题目描述3、思路分析4、代码详解一、100222. 三角形类型II1、原题链接三角形类型II-力扣(LeetCode)竞赛2、题目描述给你一个下标从 0 开始长度为 3 的整数数组 nums ,需要用它们来构造三角形。如果一个三角形的所有边长度相等,那么这个三角形称为 equilatera

【刷透Leetcode热题100】1.两数之和

题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。一、JAVA解法classSolution{publicint[]twoSum(int[]nums,inttarget){Mapmap=newHashMap();for(inti=0,j=nums.

leetcode69---x 的平方根

大家好,我是大唐,刚刷完了几道经典的leetcode题,今天给大家分享一道leetcode上面的二分查找经典题型---x的平方根,我们往下看。题目描述给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如 pow(x,0.5) 或者 x**0.5 。示例求解方法这道问题要求非负整数x的平方根。如果遇到平方根不是整数的情况呢?只取整数部分。例如,输入x=8,输出为2。8的平方根也就是target值,是小数2.82842…。2是小于target的元素中、最接近target的元素。因此,这

leetcode--接雨水(双指针法,动态规划,单调栈)

目录方法一:双指针法 方法二:动态规划方法三:单调栈42.接雨水-力扣(LeetCode) 黑色的是柱子,蓝色的是雨水,我们先来观察一下雨水的分布情况:雨水落在凹槽之间,在一个凹槽的左右都会有两个柱子,两个柱子高度可能相同也可能不同,柱子的高低决定了凹槽的雨水的高度,雨水的高度等于两个柱子较低的高度。方法一:双指针法时间复杂度:O(N^2);空间复杂度:O(1);缺点:会超时;思想:统计各个所在位置的左边最高高度和右边最高位置(第一个和最后一个柱子所在位置不用统计,他们不可能会接收雨水),然后算出各个位置雨水面积(两边的最高高度的较小值-当前位置的柱子的面积),最后将各个位置的面积相加得到总面

代码随想录算法训练营第1天|LeetCode707.二分查找、LeetCode27.移除元素

代码随想录算法训练营第1天|LeetCode707.二分查找、LeetCode27.移除元素1、数组理论基础定义:数组是存放在连续内存空间上的相同类型数据的集合。获取:下标索引的方式。从0开始。删除/增添:需要移动其他元素的地址。不能删除,只能覆盖。vectorVSarray:vector是容器,底层实现是arrayJava中没有指针,且不对程序员暴露元素地址。2、LeetCode707.二分查找题目链接:https://leetcode.cn/problems/binary-search/文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88

leetcode刷题记录12(2023-07-02)【完全平方数(动态规划) | 移动零(冒泡排序) | 寻找重复数 | 删除无效的括号(暴力搜索+剪枝)】

279.完全平方数给你一个整数n,返回和为n的完全平方数的最少数量。完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。示例1:输入:n=12输出:3解释:12=4+4+4示例2:输入:n=13输出:2解释:13=4+9提示:11n104这道题采用动态规划进行求解,不能用贪心去做,否则结果是错误的,反例就是示例1,如果用贪心,12=9+1+1+1,需要4个数。另外一种方法是利用了一个数学定理(四平方和定理),见https://leetcode.cn/problems/perfect-squares/solut

LeetCode 第41天 | 背包问题 二维数组 一维数组 416.分割等和子集 动态规划

46.携带研究材料(第六期模拟笔试)题目描述小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间,并且具有不同的价值。小明的行李空间为N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。输入描述第一行包含两个正整数,第一个整数M代表研究材料的种类,第二个正整数N,代表小明的行李空间。第二行包含M个正整数,代表每种研究材料的所占空间。第三行包含M个正整数,代表每种研究材料的价值。输出描述输

代码随想录训练营第15天 | 层序遍历、LeetCode 226.翻转二叉树、​​​​​​LeetCode 101. 对称二叉树

层序遍历理论讲解LeetCode226.翻转二叉树文章讲解:代码随想录(programmercarl.com)视频讲解:听说一位巨佬面Google被拒了,因为没写出翻转二叉树|LeetCode:226.翻转二叉树_哔哩哔哩_bilibili思路关键在于遍历顺序,只要把每一个节点的左右孩子翻转一下,就可以达到整体翻转的效果。这道题目使用前序遍历和后序遍历都可以。代码如下: ​​​​​​LeetCode101.对称二叉树文章讲解:代码随想录(programmercarl.com)视频讲解:同时操作两个二叉树|LeetCode:101.对称二叉树_哔哩哔哩_bilibili思路本题遍历只能是“后序遍