首页 > 其他 > 详细

915. Partition Array into Disjoint Intervals

时间:2021-07-23 10:59:41      阅读:15      评论:0      收藏:0      [点我收藏+]

Given an 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 in right.
  • left and right are non-empty.
  • left has the smallest possible size.

Return the length of left after such a partitioning.  It is guaranteed that such a 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]

 

Note:

  1. 2 <= nums.length <= 30000
  2. 0 <= nums[i] <= 106
  3. It is guaranteed there is at least one way to partition nums as described.
   public int partitionDisjoint(int[] A) {
        int maxUntilI = A[0];
        int leftPartitionMax=A[0];
        int partitionSpot = 0;
        for(int i=1;i<A.length;i++){
            maxUntilI =Math.max(maxUntilI, A[i]) ;
            if(A[i]<leftPartitionMax){
                leftPartitionMax=maxUntilI;
                partitionSpot =i;
            }            
        }
        return partitionSpot+1;
    } 

https://leetcode.com/problems/partition-array-into-disjoint-intervals/discuss/175945/Java-one-pass-7-lines

915. Partition Array into Disjoint Intervals

原文:https://www.cnblogs.com/wentiliangkaihua/p/15047200.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!