码迷,mamicode.com
首页 > Windows程序 > 详细

239. Sliding Window Maximum

时间:2019-07-20 17:31:58      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:tput   xpl   out   line   res   The   arraylist   turn   span   

/**
 * 239. Sliding Window Maximum
 * https://leetcode.com/problems/sliding-window-maximum/description/
 *
 * Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right.
 * You can only see the k numbers in the window. Each time the sliding window moves right by one position. Return the max sliding window.

Example:
Input: nums = [1,3,-1,-3,5,3,6,7], and k = 3
Output: [3,3,5,5,6,7]

Explanation:

Window position                Max
---------------               -----
[1  3  -1] -3  5  3  6  7       3
1 [3  -1  -3] 5  3  6  7       3
1  3 [-1  -3  5] 3  6  7       5
1  3  -1 [-3  5  3] 6  7       5
1  3  -1  -3 [5  3  6] 7       6
1  3  -1  -3  5 [3  6  7]      7
 * */
class Solution {
    fun maxSlidingWindow(nums: IntArray, k: Int): IntArray {
        val result = ArrayList<Int>()
        var left = 0
        var right = left + k
        val size = nums.size
        for (i in 0 until size) {
            val intRange = IntRange(left, right - 1)
            val subArray = nums.slice(intRange)
            result.add(subArray.max()!!)
            left++
            right = left + k
            if (right > size) {
                break
            }
        }
        return result.toIntArray()
    }
}

 

239. Sliding Window Maximum

标签:tput   xpl   out   line   res   The   arraylist   turn   span   

原文地址:https://www.cnblogs.com/johnnyzhao/p/11218131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!