- 2024-06-20Leedcode【222】. 完全二叉树的节点个数——Java解法(递归)
Problem: 222.完全二叉树的节点个数题目思路解题方法复杂度Code效果题目给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的
- 2024-06-20Leedcode【146】. LRU 缓存——Java实现
Problem: 146.LRU缓存思路解题方法复杂度Code效果思路使用一个双向链表来维护缓存的访问顺序,最近使用的节点在链表头部,最久未使用的节点在链表尾部。使用一个哈希表来存储缓存中的键值对,哈希表中的键对应双向链表中的节点。解题方法Node类:表示双向链表的节点,每
- 2024-06-20Leedcode【62】. 不同路径——Java解法(动态规划)
Problem: 62.不同路径题目思路解题方法复杂度Code效果题目一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例1:
- 2024-05-31Leedcode-反转字符串 II
自己写的:classSolution:defreverseStr(self,s:str,k:int)->str:#初始化两个空列表:s_li用于存储切分后的字符串片段,res用于存储处理后的片段s_li=[]res=[]#遍历字符串,步长为2*k,切分成每2*k个字符一组的片段并存储在s_li
- 2024-05-31Leedcode-最长特殊序列 Ⅰ
自己写的:classSolution:#getMinimumDifference方法接收一个二叉树的根节点root,并返回树中所有节点值的最小差值defgetMinimumDifference(self,root:Optional[TreeNode])->int:#初始化一个列表用于存储树中的节点值myli=[]#使
- 2024-05-31Leedcode-二叉搜索树的最小绝对差
自己写的:classSolution:#getMinimumDifference方法接收一个二叉树的根节点root,并返回树中所有节点值的最小差值defgetMinimumDifference(self,root:Optional[TreeNode])->int:#初始化一个列表用于存储树中的节点值myli=[]#使
- 2024-05-28leedcode【349】. 两个数组的交集——Java解法
Problem: 349.两个数组的交集题目思路解题方法复杂度Code效果题目给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。示例1:输入:nums1=[1,2,2,1],nums2=[2,2]输出:[2]示例2:输入:nums1=[
- 2024-05-28leedcode【383】. 赎金信——Java解法
Problem: 383.赎金信题目思路解题方法复杂度Code性能题目给你两个字符串:ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回true;否则返回false。magazine中的每个字符只能在ransomNote中使用一次。示例1:输入:ransomNot
- 2024-05-23Leedcode-斐波那契数
自己写的,递归classSolution:deffib(self,n:int)->int:#如果n是0,则返回0,因为这是Fibonacci数列的定义ifn==0:return0#如果n是1,则返回1,因为这是Fibonacci数列的定义elifn==1:retu
- 2024-05-22Leedcode-完美数
自己写的:classSolution:defcheckPerfectNumber(self,num:int)->bool:#如果数字是1,则直接返回False,因为1不是完美数ifnum==1:returnFalse#初始化一个空的列表来存储因子factors=[]
- 2024-05-21Leedcode-相对名次
自己写的:fromtypingimportListclassSolution:deffindRelativeRanks(self,score:List[int])->List[str]:#获取成绩列表的长度n=len(score)#复制原始成绩列表score_former=score#对成绩列
- 2024-05-19Leedcode-二叉搜索树中的众数
自己写的:classSolution:#findMode方法接受一个二叉树的根节点root,并返回一个列表,其中包含树中出现次数最多的值deffindMode(self,root:Optional[TreeNode])->List[int]:#初始化一个队列,用于层次遍历二叉树queue=[root]#初始化
- 2024-05-18Leedcode-键盘行
自己写的:classSolution:#定义findWords方法,该方法接受一个字符串列表words作为参数deffindWords(self,words:List[str])->List[str]:#定义三个字符串,分别包含键盘上三行的字母str1="qwertyuiopQWERTYUIOP"#第一行字母str2=
- 2024-05-17Leedcode-下一个更大元素 I
自己写的:classSolution:defnextGreaterElement(self,nums1:List[int],nums2:List[int])->List[int]:res=[]#结果列表,用于存储每个nums1中元素在nums2中的下一个更大元素num1_ptr=0#指向nums1当前元素的指针num2_ptr=0#
- 2024-05-16Leedcode-提莫攻击
自己写的,中间算法有遗漏的遍历classSolution:deffindPoisonedDuration(self,timeSeries:List[int],duration:int)->int:ifduration==0:#如果duration为0,则返回0,因为没有中毒时间return0count=0#初始化中毒总时间
- 2024-05-14Leedcode-构造矩形
自己写的classSolution:defconstructRectangle(self,area:int)->List[int]:#计算给定面积的平方根root=area**0.5#初始化结果列表,默认为[1,area],即长为面积,宽为1的情况temp=[1,area]#如果面积是一个完全
- 2024-05-13Leedcode-最大连续 1 的个数
自己写的:fromtypingimportListclassSolution:deffindMaxConsecutiveOnes(self,nums:List[int])->int:#初始化最大连续1的计数器和临时连续1的计数器count=0temp=0#获取列表长度n=len(nums)#初
- 2024-05-12Leedcode-密钥格式化
自己写的:classSolution:deflicenseKeyFormatting(self,s:str,k:int)->str:#将字符串转换为列表,方便操作new_S=list()#遍历输入字符串foriins:#如果当前字符不是'-',则添加到新列表中ifi!
- 2024-05-11Leedcode-数字的补数
自己写的:classSolution:deffindComplement(self,num:int)->int:#初始化一个空字符串,用于存储二进制表示bin_str=''#将输入的数字转换为二进制表示,存储在bin_str中whilenum>0:bin_str=str(num
- 2024-05-10Leedcode-岛屿的周长
自己写的:classSolution:defislandPerimeter(self,grid:List[List[int]])->int:#初始化周长计数器count=0#遍历二维网格的行foriinrange(len(grid)):#遍历二维网格的列forjinrange(len(gr
- 2024-05-08leedcode-重复的子字符串
classSolution:defrepeatedSubstringPattern(self,s:str)->bool:#获取字符串的长度n=len(s)#初始化指针指向字符串的最后一个字符rptr=n-1#在指针到达字符串的第一个字符之前循环whilerptr>0:
- 2024-05-07leedcode-分发饼干(贪心算法)
自己写的,没有使用排序,会超出时间限制:classSolution:deffindContentChildren(self,g:List[int],s:List[int])->int:iflen(s)==0:return0count=0foriinrange(len(g)):mydict={}forjin
- 2024-04-30leedcode-排列硬币
自己写的:importmathclassSolution:defarrangeCoins(self,n:int)->int:#计算判别式discriminant=1+8*n#计算根root1=(-1+math.sqrt(discriminant))/2#返回地板取整后的根returnmath.floo
- 2024-04-29leedcode-字符串中的单词数
classSolution:defcountSegments(self,s:str)->int:n=len(s)#如果字符串长度为1且不是空格,则只有一个段ifn==1ands[0]!='':return1#如果字符串长度为1且是空格,则没有段ifn==1ands[0]==
- 2024-04-28leedcode-
自己写的:classSolution:defaddStrings(self,num1:str,num2:str)->str:#将两个字符串转换为整数num1_int=self.strToInt(num1)num2_int=self.strToInt(num2)#将两个整数相加,并将结果转换为字符串res=