LeetCode 915 分割数组[数组 双指针] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 915 分割数组[数组 双指针] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
在这个特殊的意义刷一道中等题真的幸福度拉满,这道题的本意就是求一个尽可能小的界限,界限左边的数都比右边的数小,那么我们可以定义双指针,左指针为了定界,右指针就不断向右找,用一个变量存储当前左区间最大的数,一旦发现右指针指向的位置比左区间最大值小,那么左指针就将界限拉到右指针位置,右指针继续向下找,代码如下:
class Solution
public:
int partitionDisjoint(vector<int>& nums)
int n = nums.size();
int maxNum = nums[0], left = 0, right = 1;
int curMax = maxNum;
while(right < n)
while(right < n && nums[right] >= maxNum)
curMax = max(curMax, nums[right]);
right ++;
if(right == n)
break;
left = right;
maxNum = curMax;
right ++;
return left + 1;
;
以上是关于LeetCode 915 分割数组[数组 双指针] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 1441 用栈操作构建数组[双指针] HERODING的LeetCode之路
leetcode167. 两数之和 II - 输入有序数组(双指针)