LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode605.种花问题假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数n。能否在不打破种植规则的情况下种入n朵花?能则返回True,不能则返回False。示例1:输入:f
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode581.最短无序连续子数组给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例1:输入:2,6,4,8,10,9,15输出:5解释:你只需要对6,4,8,10,9进行升序排序,那么整个表都会变为升序排序。说明:输入的数组长度范
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode561.数组拆分I给定长度为2n的数组,你的任务是将这些数分成n对,例如(a1,b1),(a2,b2),...,(an,bn),使得从1到n的min(ai,bi)总和最大。示例1:输入:1,4,3,2输出:4解释:n等于2,最大总和为4=min(1,2)+min(3,4).提示:n是正整数,范围在1,10000.数组中的元素
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode551.学生出勤记录I给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:'A':Absent,缺勤'L':Late,迟到'P':Present,到场如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。示例1
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode532.数组中的Kdiff数对给定一个整数数组和一个整数k,你需要在数组里找到不同的kdiff数对。这里将kdiff数对定义为一个整数对(i,j),其中i和j都是数组中的数字,且两数之差的绝对值是k.示例1:输入:3,1,4,1,5,k=2输出:2解释:数组中有两个2diff数对,(1,3)和(3,5)。尽管数组中有两个1,
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode521.最长特殊序列Ⅰ给定两个字符串,你需要从这两个字符串中找出最长的特殊序列。最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。输入为两个字符串,输出最长特殊序
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode513.找树左下角的值给定一个二叉树,在树的最后一行找到最左边的值。示例1:输入:java2/\13输出:1示例2:输入:java1/\23//\456/7输出:7注意:您可以假设树(即给定的根节点)不为NULL。java/Definitionforabinarytreenode.publicclassTreeNode{in
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode501.二叉搜索树中的众数给定一个有相同值的二叉搜索树(BST),找出BST中的所有众数(出现频率最高的元素)。假定BST有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定BST1,null,2,2,java1\2/2返回2.提示:如果众
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode491.递增子序列给定一个整型数组,你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入:4,6,7,7输出:4,6,4,7,4,6,7,4,6,7,7,6,7,6,7,7,7,7,4,7,7说明:给定数组的长度不会超过15。数组中的整数范围是100,100。给定数组中可能包含重复数字,相等的数字应该被
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode481.神奇字符串神奇的字符串S只包含'1'和'2',并遵守以下规则:字符串S是神奇的,因为串联字符'1'和'2'的连续出现次数会生成字符串S本身。字符串S的前几个元素如下:S=“1221121221221121122......”如果我们将S中连续的1和2进行分组,它将变成:1221121221221121122.....
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode472.连接词给定一个不含重复单词的列表,编写一个程序,返回给定单词列表中所有的连接词。连接词的定义为:一个字符串完全是由至少两个给定数组中的单词组成的。示例:输入:"cat","cats","catsdogcats","dog","dogcatsdog","hippopotamuses","rat","ratcatdogc
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode461.汉明距离两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数x和y,计算它们之间的汉明距离。注意:0≤x,y<231.示例:输入:x=1,y=4输出:2解释:1(0001)4(0100)↑↑上面的箭头指出了对应二进制位不同的位置。找两个数字,二进制下,相同位置不同数字的数目异或下,如果二进
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode451.根据字符出现频率排序给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例2:输入:"cccaaa"输出:"cccaaa"解释:'c'和'
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode441.排列硬币你总共有n枚硬币,你需要将它们摆成一个阶梯形状,第k行就必须正好有k枚硬币。给定一个数字n,找出可形成完整阶梯行的总行数。n是一个非负整数,并且在32位有符号整型的范围内。示例1:n=5硬币可排列成以下几行:java¤¤¤¤¤因为第三行不完整,所以返回2.示例2:n=8硬币可排列成以下几行:java¤¤¤¤¤
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode432.全O(1)的数据结构实现一个数据结构支持以下操作:Inc(key)插入一个新的值为1的key。或者使一个存在的key增加一,保证key不为空字符串。Dec(key)如果这个key的值是1,那么把他从数据结构中移除掉。否者使一个存在的key值减一。如果这个key不存在,这个函数不做任何事情。key保证不为空字符串。Ge
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode421.数组中两个数的最大异或值给定一个非空数组,数组中元素为a0,a1,a2,…,an1,其中0≤ai<231。找到ai和aj最大的异或(XOR)运算结果,其中0≤i,j<n。你能在O(n)的时间解决这个问题吗?示例:输入:3,10,5,25,2,8输出:28解释:最大的结果是5^25=28.经典前缀树javaclassS
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode412.FizzBuzz写一个程序,输出从1到n数字的字符串表示。1.如果n是3的倍数,输出“Fizz”;2.如果n是5的倍数,输出“Buzz”;3.如果n同时是3和5的倍数,输出“FizzBuzz”。示例:n=15,返回:java"1","2","Fizz","4","Buzz","Fizz","7","8","Fizz"
LeetCode习题集有些题可能直接略过了,整理一下之前刷leetcode401.二进制手表二进制手表顶部有4个LED代表小时(011),底部的6个LED代表分钟(059)。每个LED代表一个0或1,最低位在右侧。!在这里插入图片描述(https://s4.51cto.com/images/blog/202112/19164210_61bef062959f711342.jpg?xossproces
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当我们判断以某个点为正方形右下角时最大的正方形时,那它的上方,左方和左上方三个点也一定是某个正方形的右下角,否则该点为右下角的正方形最大就是它自己了。这是定性的判断,那具体的最大正方形边长
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号