加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

239. Sliding Window Maximum

发布时间:2020-12-14 05:32:24 所属栏目:Windows 来源:网络整理
导读:/** * 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
/**
 * 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,6,7],and k = 3
Output: [3,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()
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读