- 2025-01-23leetcode——缺失的第一个整数(java)
给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。示例1:输入:nums=[1,2,0]输出:3解释:范围[1,2]中的数字都在数组中。示例2:输入:nums=[3,4,-1,1]输出:2解释:1在数组中,但2
- 2025-01-23python-leetcode-随机链表的复制
138.随机链表的复制-力扣(LeetCode)"""#DefinitionforaNode.classNode:def__init__(self,x:int,next:'Node'=None,random:'Node'=None):self.val=int(x)self.next=nextself.random=
- 2025-01-23LeetCode 221. 最大正方形
问题描述解题思路动态规划定义状态:dp[i][j]表示矩阵中以(i,j)为右下角的最大正方形的边长。状态转移方程:如果matrix[i][j]为'1',则dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1。初始化:第一行和第一列的dp值等于matrix中的对应值。遍历:从
- 2025-01-23LeetCode 931. 下降路径最小和
题目描述解题思路这个问题可以通过动态规划来解决。我们定义一个二维数组dp,其中dp[i][j]表示从第一行到第i行,且第i行选择第j列元素的最小路径和。我们可以从第一行开始,逐行计算dp数组的值。算法步骤初始化dp数组的第一行与matrix的第一行相同,因为第一行的
- 2025-01-23LeetCode 8. 字符串转换整数 (atoi)
题目原题链接:LeetCode8.字符串转换整数(atoi)思路题目首先要判断空格。将前面的空格先一个个扣除。扣完空格记得判断是否到达字符串末尾。然后判断符号。用一个int存符号,正数为1,负数为-1。接下来题目又说前置零又说非数字字符又说数字,理一下思路,其实就是判断是否是数字,是
- 2025-01-22LeetCode 7. 整数反转
原题链接:LeetCode7.整数反转思路方法1:数学方法使用数学方法。扣出数字的每一位,使用r=r*10+x%10公式将数字反转,判断是否溢出。判断溢出时可以安全判断,比如x为正数时,将r*10+x%10>Integer.MAX_VALUE转化成r>(Integer.MAX_VALUE-x%10)/10判断,不会在判
- 2025-01-21【LeetCode 刷题】栈与队列-基础操作
此博客为《代码随想录》字符串章节的学习笔记,主要内容为栈与队列基础操作相关的题目解析。文章目录232.用栈实现队列225.用队列实现栈232.用栈实现队列题目链接classMyQueue:def__init__(self):self.in_s,self.out_s=[],[]
- 2025-01-20数据结构与算法之递归: LeetCode 39. 组合总和 (Ts版)
组合总和https://leetcode.cn/problems/combination-sum/description/描述给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。你可以按任意顺序返回这些组合candid
- 2025-01-20LeetCode 771. 宝石与石头
在本篇博客中,我们将探讨如何解决LeetCode上的第771题——宝石与石头。这个问题涉及到字符串的处理和集合的使用,是一个典型的编程问题,适合初学者练习。解题思路解决这个问题的关键在于如何高效地检查stones中的每个字符是否在jewels中。我们可以通过以下步骤来实现:
- 2025-01-20leetcode 221. 最大正方形
题目如下数据范围典型的动态规划题。令f(i,j)为以i,j为右下角左边正方形的最大边长,当且仅当f(i,j)>0(即矩阵(ij)不为’0’)时f(i,j)=min(f(i,j-1),f(i-1,j-1),f(i-1,j))对这个方程不太理解的话借用leetcode官方的图也就是说边长为n的正方形可以由3个
- 2025-01-19LeetCode栈和队列
栈和队列LeetCode栈和队列刷题记录基础知识栈线性表,只允许在表的一段进行插入和删除操作,满足先进后出原则栈在python中没有特定的类或库函数,一般通过列表(list)或是collections.deque双端队列来实现liststack=[]stack.append(1)#压栈stack.append(2)print(st
- 2025-01-19LeetCode:78.子集
LeetCode:78.子集解题思路要求:1、所有子集;2、没有重复元素。网信2268731有出路、有死路。考虑使用回溯算法。解题步骤用递归模拟出所有情况。8731保证接的数字都是后面的数字。收集所有到达递归终点的情况,并返回。时间复杂度:O(2^N),因为每个元素都有两种可能(存在或不存在)空间复
- 2025-01-19LeetCode:122.买卖股票的最佳时机II
LeetCode:122.买卖股票的最佳时机IImathtcg4d..解题思路前提:上帝视角,知道未来的价格。局部最优:见好就收,见差就不动,不做任何长远打算。解题步骤新建一个变量,用来统计总利润。遍历价格数组,如果当前价格比昨天高,就在昨天买,今天卖,否则就不交易。遍历结束后,返回所有利润之和。/**
- 2025-01-19leetcode——三数之和(java)
给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:输入:nums=[-1,0,1,2,-1,-4]输
- 2025-01-18LeetCode题练习与总结:下一个更大元素 Ⅲ -- 556
一、题目描述给你一个正整数 n ,请你找出符合条件的最小整数,其由重新排列 n 中存在的每位数字组成,并且其值大于 n 。如果不存在这样的正整数,则返回 -1 。注意 ,返回的整数应当是一个 32位整数 ,如果存在满足题意的答案,但不是 32位整数 ,同样返回 -1 。示例1:
- 2025-01-18LeetCode题练习与总结:反转字符串中的单词 Ⅲ -- 557
一、题目描述给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入:s="Let'stakeLeetCodecontest"输出:"s'teLekatedoCteeLtsetnoc"示例2:输入:s="MrDing"输出:"rMgniD"提示:1<=s.length<=5*10^
- 2025-01-18python-leetcode-存在重复元素 II
219.存在重复元素II-力扣(LeetCode)classSolution:defcontainsNearbyDuplicate(self,nums:List[int],k:int)->bool:seen=set()fori,numinenumerate(nums):ifnuminseen:returnTrue
- 2025-01-18python-leetcode-最小覆盖子串
76.最小覆盖子串-力扣(LeetCode)classSolution:defminWindow(self,s:str,t:str)->str:ifnotsornott:return""need={}forcint:need[c]=need.get(c,0)+1windo
- 2025-01-18LeetCode:455.分饼干
LeetCode:455.分饼干解题思路局部最优:既能满足孩子,还消耗最少。先将“较小的饼干”分给“胃囗最小”的孩子。解题步骤对饼干数组和胃口数组升序排序。遍历饼干数组,找到能满足第一个孩子的饼干。然后继续遍历饼干数组,找到满足第二、三、….、n个孩子的饼干。/***@param{numb
- 2025-01-18leetcode——分割两个字符串得到一个回文字符串(java)
给你两个字符串a和b,它们长度相同。请你选择一个下标,将两个字符串都在相同的下标分割开。由a可以得到两个字符串:aprefix和asuffix,满足a=aprefix+asuffix,同理,由b可以得到两个字符串bprefix和bsuffix,满足b=bprefix+bsuffix。请你判断aprefix+bsu
- 2025-01-18【LeetCode: 415. 字符串相加 + 双指针】
- 2025-01-18LeetCode:491.递增子序列
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的!代码随想录LeetCode:491.递增子序列给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两个元素。你可以按任意顺序返回答案。数组中可能含有重复
- 2025-01-18LeetCode:90.子集II
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的!代码随想录LeetCode:90.子集II给你一个整数数组nums,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。返回的解集中,子集可以按任意顺序排列。
- 2025-01-18leetcode——接雨水(java)
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例1:输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。示例
- 2025-01-18leetcode——令牌放置(java)
你的初始能量为power,初始分数为0,只有一包令牌以整数数组tokens给出。其中tokens[i]是第i个令牌的值(下标从0开始)。你的目标是通过有策略地使用这些令牌以最大化总分数。在一次行动中,你可以用两种方式中的一种来使用一个未被使用的令牌(但不是对同一个令牌使