草庐IT

图解LeetCode——769. 最多能完成排序的块(难度:中等)

一、题目给定一个长度为n的整数数组arr,它表示在[0,n-1]范围内的整数的排列。我们将arr分割成若干块(即分区),并对每个块单独排序。将它们连接起来后,使得连接的结果和按升序排序后的原数组相同。返回数组能分成的最多块数量。二、示例2.1>示例1:【输入】arr=[4,3,2,1,0]【输出】1【解释】将数组分成2块或者更多块,都无法得到所需的结果。例如,分成[4,3],[2,1,0]的结果是[3,4,0,1,2],这不是有序的数组。2.2>示例2:【输入】arr=[1,0,2,3,4]【输出】4【解释】我们可以把它分成两块,例如[1,0],[2,3,4]。然而,分成[1,0],[2],[

图解LeetCode——11. 盛最多水的容器(难度:中等)

一、题目给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水,返回容器可以储存的最大水量。说明:你不能倾斜容器。二、示例2.1>示例1:【输入】[1,8,6,2,5,4,8,3,7]【输出】49【解释】图中垂直线代表输入数组[1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。2.2>示例2:【输入】height=[1,1]【输出】1提示:n==height.length20三、解题思路3.1>思路1:双向指针通过题意,我们会接

39. 组合总和(难度:中等)

题目链接:https://leetcode-cn.com/problems/combination-sum/给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入:candidates=[2,3,6,7],target=7,所求解集为:[[7],[2,2,3]]示例2:输入:candidates=[2,3,5],target=8,所求解集为:[[2,2,2,2],[2,3,3],[3,

904. 水果成篮(难度:中等)

题目链接:https://leetcode.cn/problems/fruit-into-baskets/题目描述:探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组fruits表示,其中fruits[i]是第i棵树上的水果种类。你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:你只有两个篮子,并且每个篮子只能装单一类型的水果。每个篮子能够装的水果总量没有限制。你可以选择任意一棵树开始采摘,你必须从每棵树(包括开始采摘的树)上恰好摘一个水果。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘。一旦你走到某棵树前

1780. 判断一个数字是否可以表示成三的幂的和(难度:中等)

题目链接:https://leetcode.cn/problems/check-if-number-is-a-sum-of-powers-of-three/题目描述:给你一个整数n,如果你可以将n表示成若干个不同的三的幂之和,请你返回true,否则请返回false。对于一个整数y,如果存在整数x满足y==3x,我们称这个整数y是三的幂。示例1:输入:n=12输出:true解释:12=3^1+3^2示例2:输入:n=91输出:true解释:91=3^0+3^2+3^4示例3:输入:n=21输出:false提示:1解法:贪心+递归根据题目意思,我们可以通过递归的思想,不断的减小n,直到其小于3,可

图解LeetCode——775. 全局倒置与局部倒置(难度:中等)

一、题目给你一个长度为n的整数数组nums,表示由范围[0,n-1]内所有整数组成的一个排列。全局倒置的数目等于满足下述条件不同下标对(i,j)的数目:0nums[i]>nums[j]局部倒置的数目等于满足下述条件的下标i的数目:0nums[i]>nums[i+1]当数组nums中全局倒置的数量等于局部倒置的数量时,返回true;否则,返回false。二、示例2.1>示例1:【输入】nums=[1,0,2]【输出】true【解释】有1个全局倒置,和1个局部倒置。2.2>示例2:【输入】nums=[1,2,0]【输出】false【解释】有2个全局倒置,和1个局部倒置。提示:n==nums.len

LeetCode98:验证二叉搜索树,居然有这么简单的中等难度,白捡(用时击败100%)

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos关于LeetCode98做这道题之前,我反复审题,最后确认:没错,不存在什么坑,这道题确实非常非常简单,然而却被官方定义为中等难度这一定是送分,白捡一道中等难度题,接下来,一起来轻松愉快的享受解题过程吧关于题目题目:98.验证二叉搜索树描述给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树。有效二叉搜索树定义如下:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树示例1:输入:r

1764. 通过连接另一个数组的子数组得到一个数组(难度:中等)

题目链接:https://leetcode.cn/problems/form-array-by-concatenating-subarrays-of-another-array/题目描述:给你一个长度为n的二维整数数组groups,同时给你一个整数数组nums。你是否可以从nums中选出n个不相交的子数组,使得第i个子数组与groups[i](下标从0开始)完全相同,且如果i>0,那么第(i-1)个子数组在nums中出现的位置在第i个子数组前面。(也就是说,这些子数组在nums中出现的顺序需要与groups顺序相同)如果你可以找出这样的n个子数组,请你返回true,否则返回false。如果不存

775. 全局倒置与局部倒置(难度:中等)

题目描述:https://leetcode.cn/problems/global-and-local-inversions/题目描述:给你一个长度为n的整数数组nums,表示由范围[0,n-1]内所有整数组成的一个排列。全局倒置的数目等于满足下述条件不同下标对(i,j)的数目:0nums[i]>nums[j]局部倒置的数目等于满足下述条件的下标i的数目:0nums[i]>nums[i+1]当数组nums中全局倒置的数量等于局部倒置的数量时,返回true;否则,返回false。示例1:输入:nums=[1,0,2]输出:true解释:有1个全局倒置,和1个局部倒置。示例2:输入:nums=[1,

02.两数相加(难度:中等)

两数相加(难度:中等)题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字0之外,这两个数都不会以0开头。示例:输入:(2->4->3)+(5->6->4)输出:7->0->8原因:342+465=807解法:按照我们小学学习的两个多位数的相加,从各位开始,各位与各位相加,如果大于10则进位,保留其与10的余数。接下来十位,百位,亦是如此。直到有一个数的没有更高位,则把另一个数的剩余高位补到结果的高位,此时需要判断,是否有进位,如有