一、题目给定一个长度为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],[
一、题目给定一个长度为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:双向指针通过题意,我们会接
题目链接: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,
题目链接:https://leetcode.cn/problems/find-nearest-point-that-has-the-same-x-or-y-coordinate/题目描述:给你两个整数x和y,表示你在一个笛卡尔坐标系下的(x,y)处。同时,在同一个坐标系下给你一个数组points,其中points[i]=[ai,bi]表示在(ai,bi)处有一个点。当一个点与你所在的位置有相同的x坐标或者相同的y坐标时,我们称这个点是有效的。请返回距离你当前位置曼哈顿距离最近的有效点的下标(下标从0开始)。如果有多个最近的有效点,请返回下标最小的一个。如果没有有效点,请返回-1。两个点(x1,
题目链接:https://leetcode.cn/problems/fruit-into-baskets/题目描述:探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组fruits表示,其中fruits[i]是第i棵树上的水果种类。你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:你只有两个篮子,并且每个篮子只能装单一类型的水果。每个篮子能够装的水果总量没有限制。你可以选择任意一棵树开始采摘,你必须从每棵树(包括开始采摘的树)上恰好摘一个水果。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘。一旦你走到某棵树前
题目链接: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,可
一、题目给你一个长度为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
题目链接:https://leetcode.cn/problems/minimum-swaps-to-make-sequences-increasing/题目描述:我们有两个长度相等且不为空的整型数组nums1和nums2。在一次操作中,我们可以交换nums1[i]和nums2[i]的元素。例如,如果nums1=[1,2,3,8],nums2=[5,6,7,4],你可以交换i=3处的元素,得到nums1=[1,2,3,4]和nums2=[5,6,7,8]。返回使nums1和nums2严格递增所需操作的最小次数。数组arr严格递增且arr[0]。注意:用例保证可以实现操作。示例1:输入:nums
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos关于LeetCode98做这道题之前,我反复审题,最后确认:没错,不存在什么坑,这道题确实非常非常简单,然而却被官方定义为中等难度这一定是送分,白捡一道中等难度题,接下来,一起来轻松愉快的享受解题过程吧关于题目题目:98.验证二叉搜索树描述给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树。有效二叉搜索树定义如下:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树示例1:输入:r
题目链接: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。如果不存