zoukankan      html  css  js  c++  java
  • 915. Partition Array into Disjoint Intervals

    1. Question:

    915. Partition Array into Disjoint Intervals

    https://leetcode.com/problems/partition-array-into-disjoint-intervals/

    Given an array A, 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: [5,0,3,8,6]
    Output: 3
    Explanation: left = [5,0,3], right = [8,6]
    

    Example 2:

    Input: [1,1,1,0,6,12]
    Output: 4
    Explanation: left = [1,1,1,0], right = [6,12]
    

    Note:

    1. 2 <= A.length <= 30000
    2. 0 <= A[i] <= 10^6
    3. It is guaranteed there is at least one way to partition A as described.

    2. Solution:

    class Solution:
        def partitionDisjoint(self, A):
            """
            :type A: List[int]
            :rtype: int
            """
            size = len(A)
            right_min = [A[-1] for v in range(size)]
            min_value = A[-1]
            for i in range(size - 1, -1, -1):
                min_value = min(min_value, A[i])
                right_min[i] = min_value
    
            left_max = A[0]
            for i in range(size - 1):
                left_max = max(left_max, A[i])
                if left_max <= right_min[i + 1]:
                    return i + 1

    3. Complexity Analysis

    Time Complexity : O(N)

    Space Complexity: O(N)

  • 相关阅读:
    基于视网膜虹膜识别的内容分级系统
    C# 反射详解一
    C# 委托浅析
    .Net Core中使用Dapper构建泛型仓储
    C# 泛型详解
    非对称可逆加密RSA
    对称可逆加密Des
    .NET Core 3.0 中间件 Middleware
    .NET Core3.0 日志 logging
    .Net Core3.0依赖注入DI
  • 原文地址:https://www.cnblogs.com/ordili/p/10004345.html
Copyright © 2011-2022 走看看