1517. 最大子数组

1517. 最大子数组

中文English

给定一个由N个整数构成的数组A和一个整数K,
从所有长度为K的A的连续子数组中返回最大的连续子数组。
如果两个数组中的第一个不相等元素在A中的值大于B中的值,则我们定义子数组A大于子数组B。
例如,A=[1,2,4,3],B=[1,2,3,5].
A大于B,因为A [2]> B [2]。

样例

例 1:

输入:
[1,4,3,2,5]
4
输出:
[4,3,2,5]
解释:
该数组有两个长度为4的连续子数组,分别为:
[1,4,3,2] 以及 [4,3,2,5].
所以最大的子数组为 [4,3,2,5].

例 2:

输入:
[7,1,2,7,9,2,3,1,2,5]
4
输出:
[9,2,3,1]

注意事项

1<=K<=N<=100
1<=A[i]<=1000

输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param A: the array
    @param K: the length 
    @return: the largest subarray
    """
    '''
    大致思路:
    1.初始化m=0,循环A,如果当前值>m的话,且可以构成K长度的列表的话,取最大值,返回列表。
    '''
    def largestSubarray(self,A,K):
        m = 0
        res = [0]*K
        for i in range(len(A)-K+1):
            if  A[i] >= m :
                if A[i] == m:
                    for j in range(1,len(A[i:i+K])):
                        if A[i:i+K][j] != res[j]:
                            if A[i:i+K][j] > res[j]:
                                res = A[i:i+K]
                            break
                else:
                    m = A[i]
                    res = A[i:i+K]
        return res

 

 
posted @ 2020-04-25 23:05  风不再来  阅读(132)  评论(0编辑  收藏  举报