leetcode915 分割陣列

2021-09-26 19:55:30 字數 597 閱讀 7850

給定乙個陣列 a,將其劃分為兩個不相交(沒有公共元素)的連續子陣列 left 和 right, 使得:

在完成這樣的分組後返回 left 的長度。可以保證存在這樣的劃分方法。

不檢驗 all(l <= r for l in left for r in right),而是檢驗 max(left) <= min(right)。

演算法找出對於所有子集 left = a[:1], left = a[:2], left = a[:3], … 的最大值 max(left),也就是用 maxleft[i] 記錄子集 a[:i] 的最大值。兩兩之間是相互關聯的:max(a[:4]) = max(max(a[:3]), a[3]) 所以有 maxleft[4] = max(maxleft[3], a[3])。

最後只需要快速掃瞄一遍 max(left) 和 min(right),答案非常明顯。

class solution 

m = a[n - 1];

for (int i = n - 1;i >= 0;i--)

for (int i = 1;i < n;i++)

}throw null;

}}

leetcode 915 分割陣列

給定乙個陣列a,將其劃分為兩個不相交 沒有公共元素 的連續子陣列left和right,使得 在完成這樣的分組後返回left的長度。可以保證存在這樣的劃分方法。示例 1 輸入 5,0,3,8,6 輸出 3解釋 left 5,0,3 right 8,6 示例 2 輸入 1,1,1,0,6,12 輸出 4...

Leetcode 915 分割陣列

給定乙個陣列a,將其劃分為兩個不相交 沒有公共元素 的連續子陣列left和right,使得 在完成這樣的分組後返回left的長度。可以保證存在這樣的劃分方法。示例 1 輸入 5,0,3,8,6 輸出 3解釋 left 5,0,3 right 8,6 示例 2 輸入 1,1,1,0,6,12 輸出 4...

Leetcode 915 分割陣列

給定乙個陣列 a,將其劃分為兩個不相交 沒有公共元素 的連續子陣列 left 和 right,使得 left 中的每個元素都小於或等於 right 中的每個元素。left 和 right 都是非空的。left 要盡可能小。在完成這樣的分組後返回 left 的長度。可以保證存在這樣的劃分方法。示例 1...