leetcode 915 分割陣列

2021-09-01 11:59:32 字數 919 閱讀 4163

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

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

示例 1:

輸入:[5,0,3,8,6]輸出:3解釋:left = [5,0,3],right = [8,6]
示例 2:

輸入:[1,1,1,0,6,12]輸出:4解釋:left = [1,1,1,0],right = [6,12]

2 <= a.length <= 300000 <= a[i] <= 10^6可以保證至少有一種方法能夠按題目所描述的那樣對a進行劃分。

這題以開始理解錯題意了,以為分割後兩邊不能有相同的元素,結果提交上去就錯了。仔細一想,發現說的是左右兩個陣列不能重疊而已,即left陣列的最後乙個元素的位置要在right陣列的第乙個元素的位置之前。

設定乙個m陣列,m[i]表示a[i]右邊所有元素的最小值,不包括a[i]。然後從左到右遍歷a,當a[i]左邊的最小值<=m[i]時,就說明找到乙個符合題意要求的劃分。

class solution 

int l=0;

int lmax=a[l];

while(llmax)lmax=a[l];}}

return l+1;

}}

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...

leetcode915 分割陣列

給定乙個陣列 a,將其劃分為兩個不相交 沒有公共元素 的連續子陣列 left 和 right,使得 在完成這樣的分組後返回 left 的長度。可以保證存在這樣的劃分方法。不檢驗 all l r for l in left for r in right 而是檢驗 max left min right ...

Leetcode 915 分割陣列

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