915.partitionDisjoint.py
Question
Given an integer array nums
, partition it into two (contiguous) subarrays left
and right
so that:
- Every element in
left
is less than or equal to every element inright
. left
andright
are non-empty.left
has the smallest possible size.
Return the length of left
after such a partitioning.
Test cases are generated such that partitioning exists.
Example 1:
Input: nums = [5,0,3,8,6] Output: 3 Explanation: left = [5,0,3], right = [8,6]
Example 2:
Input: nums = [1,1,1,0,6,12] Output: 4 Explanation: left = [1,1,1,0], right = [6,12]
Constraints:
2 <= nums.length <= 105
0 <= nums[i] <= 106
- There is at least one valid answer for the given input.
Answer
-
class Solution(object): def partitionDisjoint(self, nums): """ :type nums: List[int] :rtype: int """ l=0 left_max=max_all=nums[0] n=len(nums) #print("n:",n) for i in range(1,n): # print("i:",i) max_all=max(left_max,nums[i]) if nums[i] <left_max: l = i left_max=max_all return l+1
好的心态+正确的方法