package main

import ("fmt")
/**
 * 
 * @param num int整型一维数组 
 * @param size int整型 
 * @return int整型一维数组
*/
func maxInWindows( num []int ,  size int ) []int {
    res := make([]int, 0, len(num))
    if size == 0 {
        return res
    }
    if size > len(num) {
        return res
    }
    maxNum := 0
    maxNumIndex := 0
    for i := 0 ;i < size; i++ {
        if maxNum <= num[i] {
            maxNum = num[i]
            maxNumIndex= i
        }
    }
    res = append(res , maxNum)
    
    for i:=1; i < (len(num) - size +1); i++ {
        // 如果向右移动的过程中,最大值跑出了窗口外,那么需要触发一次重新计算窗口
        if i  >  maxNumIndex {
            maxNum = 0 
            for j := i ;j < i+size-1; j++ {
                if maxNum <= num[j] {
                    maxNum = num[j]
                    maxNumIndex= j
                }
            }       
        } 
        
        if num[i+size-1] >= maxNum {
            maxNum = num[i+size-1]  
            maxNumIndex= i+size-1
        }
        res =append(res, maxNum)
    }
    return res
    
    
}

func max(a , b int) int {
    if a > b {
        return a
    }
    return b
}