LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode391.完美矩形我们有N个与坐标轴对齐的矩形,其中N0,判断它们是否能精确地覆盖一个矩形区域。每个矩形用左下角的点和右上角的点的坐标来表示。例如,一个单位正方形可以表示为1,1,2,2。(左下角的点的坐标为(1,1)以及右上角的点的坐标为(2,2))。!在这里插入图片描述(https://s4.51cto.com/image
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode381.O(1)时间插入、删除和获取随机元素允许重复设计一个支持在平均时间复杂度O(1)下,执行以下操作的数据结构。注意:允许出现重复元素。insert(val):向集合中插入元素val。remove(val):当val存在时,从集合中移除一个val。getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode363.矩形区域不超过K的最大数值和给定一个非空二维矩阵matrix和一个整数k,找到这个矩阵内部不大于k的最大矩形和。示例:输入:matrix=1,0,1,0,2,3,k=2输出:2解释:矩形区域0,1,2,3的数值和是2,且2是不超过k的最大数字(k=2)。说明:矩阵内的矩形区域面积必须大于0。如果行数远大于列数,你将如
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode341.扁平化嵌套列表迭代器给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。示例1:输入:1,1,2,1,1输出:1,1,2,1,1解释:通过重复调用next直到hasNext返回false,next返回
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode331.验证二叉树的前序序列化序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如。java_9_/\32/\/\416/\/\/\例如,上面的二叉树可以被序列化为字符串"9,3,4,,,1,,,2,,6,,",其中代表一个空节点。给
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode321.拼接最大数给定长度分别为m和n的两个数组,其元素由09构成,表示两个自然数各位上的数字。现在从这两个数组中选出k(k<=m+n)个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为k的数组。说明:请尽可能地优化你算法的时间和空间复杂度。
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode312.戳气球有n个气球,编号为0到n1,每个气球上都标有一个数字,这些数字存在数组nums中。现在要求你戳破所有的气球。每当你戳破一个气球i时,你可以获得numsleftnumsinumsright个硬币。这里的left和right代表和i相邻的两个气球的序号。注意当你戳破了气球i后,气球left和气球right就变成了相
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode303.区域和检索数组不可变给定一个整数数组nums,求出数组从索引i到j(i≤j)范围内元素的总和,包含i,j两点。示例:给定nums=2,0,3,5,2,1,求和函数为sumRange()sumRange(0,2)1sumRange(2,5)1sumRange(0,5)3说明:你可以假设数组不可变。会多次调用sumRan
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode282.给表达式添加运算符给定一个仅包含数字09的字符串和一个目标值,在数字之间添加二元运算符(不是一元)+、或,返回所有能够得到目标值的表达式。示例1:输入:num="123",target=6输出:"1+2+3","123"示例2:输入:num="232",target=8输出:"23+2","2+32"示例3:输入:n
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode241.为运算表达式设计优先级给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含+,以及。示例1:输入:"211"输出:0,2解释:((21)1)=0(2(11))=2示例2:输入:"2345"输出:34,14,10,10,10解释:jav
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode231.2的幂给定一个整数,编写一个函数来判断它是否是2的幂次方。示例1:输入:1输出:true解释:20=1示例2:输入:16输出:true解释:24=16示例3:输入:218输出:false2的次幂和他的上一位数&的结果为08的二进制就是10007的二进制就是0111结果0000javaclassSolution{pub
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释221.最大正方形在一个由0和1组成的二维矩阵内,找到只包含1的最大正方形,并返回其面积。示例:输入:10100101111111110010输出:4当我们判断以某个点为正方形右下角时最大的正方形时,那它的上方,左方和左上方三个点也一定是某个正方形的右下角,否则该点为右下角的正方形最大就是它自己了。这是定性的判断,那具体的最大正方形边长
按照以往的其他编辑器,标题只会像下图第一个,作者看来化石很复杂的Demo这种,到了显示页面才会显示出标题大写突出的这种然而悟空编辑器,直接是标题直接转换成了H2标签,作者看来也是很简介的,直接就有了效果,而且还在光标离开的时候会隐藏H2标签,这点还是很值得博主肯定的能根据标题自动生成目录:自动生成目录,方便读者访问文章大体,也使博主编写更加快捷高效插入功能:能支持插入LaTex数学公式,我可以说在
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释211.添加与搜索单词数据结构设计设计一个支持以下两种操作的数据结构:voidaddWord(word)boolsearch(word)search(word)可以搜索文字或正则表达式字符串,字符串只包含字母.或az。.可以表示任何一个字母。示例:addWord("bad")addWord("dad")addWord("mad")sea
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释201.数字范围按位与给定范围m,n,其中0<=m<=n<=2147483647,返回此范围内所有数字的按位与(包含m,n两端点)。示例1:输入:5,7输出:4示例2:输入:0,1输出:0classSolution{publicintrangeBitwiseAnd(intm,intn){while(m<n)n&=n1;returnn;}
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释187.重复的DNA序列所有DNA都由一系列缩写为A,C,G和T的核苷酸组成,例如:“ACGAATTCCG”。在研究DNA时,识别DNA中的重复序列有时会对研究非常有帮助。编写一个函数来查找DNA分子中所有出现超过一次的10个字母长的序列(子串)。示例:输入:s="AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释本系列有一些SQL查询问题171.Excel表列序号给定一个Excel表格中的列名称,返回其相应的列序号。例如,A1B2C3...Z26AA27AB28...示例1:输入:"A"输出:1示例2:输入:"AB"输出:28示例3:输入:"ZY"输出:701classSolution{publicinttitleToNumber(String
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释162.寻找峰值峰值元素是指其值大于左右相邻值的元素。给定一个输入数组nums,其中numsi≠numsi+1,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums1=numsn=∞。示例1:输入:nums=1,2,3,1输出:2解释:3是峰值元素,你的函数应该返回其索引2。示例
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释151.翻转字符串里的单词给定一个字符串,逐个翻转字符串中的每个单词。示例1:输入:"theskyisblue"输出:"blueisskythe"示例2:输入:"helloworld!"输出:"world!hello"解释:输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例3:输入:"agoodexample"输
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释141.环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是1,则在该链表中没有环。示例1:输入:head=3,2,0,4,pos=1输出:true解释:链表中有一个环,其尾部连接到第二个节点。!在这里插入图片描述(https://s4.51ct
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释131.分割回文串给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例:输入:"aab"输出:"aa","b","a","a","b"classSolution{intlen;ArrayList<List<Stringres=newArrayList<();Strings;booleandp;pub
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释121.买卖股票的最佳时机给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例1:输入:7,1,5,3,6,4输出:5解释:在第2天(股票价格=1)的时候买入,在第5天(股票价格=6)的时候卖出,最大利润
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释111.二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树3,9,20,null,null,15,7,3/\920/\157返回它的最小深度2.classSolution{publicintminDepth(TreeNoderoot
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释101.对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树1,2,2,3,4,4,3是对称的。1/\22/\/\3443但是下面这个1,2,2,null,3,null,3则不是镜像对称的:1/\22\\33说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。PS:递归的难点在于:找到可以递归的点为什么很多人觉得递归
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释91.解码方法一条包含字母AZ的消息通过以下方式进行了编码:'A'1'B'2...'Z'26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例1:输入:"12"输出:2解释:它可以解码为"AB"(12)或者"L"(12)。示例2:输入:"226"输出:3解释:它可以解码为"BZ"(226),"VF"(226),或者"BBF"(2
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释81.搜索旋转排序数组II假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组0,0,1,2,2,5,6可能变为2,5,6,0,0,1,2)。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回true,否则返回false。示例1:输入:nums=2,5,6,0,0,1,2,target=0输出:true示例2:输入
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释71.简化路径以Unix风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在Unix风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点(..)表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux/Unix中的绝对路径vs相对路径请注意,返回的规范路径必须
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释61.旋转链表给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入:12345NULL,k=2输出:45123NULL解释:向右旋转1步:51234NULL向右旋转2步:45123NULL示例2:输入:012NULL,k=4输出:201NULL解释:向右旋转1步:201NULL向右旋转2步:120NULL
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释41.缺失的第一个正数给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例1:输入:1,2,0输出:3示例2:输入:3,4,1,1输出:2示例3:输入:7,8,9,11,12输出:1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。classSolution{publicintfirstMissingPosi
博主私藏的LeetCode刷题集合有些较难的问题都有思路和注释51.N皇后n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互吵架。!在这里插入图片描述(https://s4.51cto.com/images/blog/202111/11091343_618c6e47bc52f41201.png?xossprocess=image/watermark,size_14,t
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号