Java教程

915. Partition Array into Disjoint Intervals

本文主要是介绍915. Partition Array into Disjoint Intervals,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!