每日一題 滑動視窗

2021-10-24 06:04:13 字數 753 閱讀 8317

題目要求:給定乙個陣列和視窗大小,視窗從左向右依次滑動,判斷視窗中最大的值是多少,返回乙個陣列

例如:給定陣列 ,視窗大小2, 返回

/**

* 暴力破解

* @author 鄭濤

*/public

int[

]windosmax

(int

arr,

int size)

if(arr.length ==

1|| size ==1)

int[

] res =

newint

[arr.length]

;//儲存結果

res[0]

= arr[0]

;int temp = arr[0]

;//用來儲存除視窗最後乙個位置外的最大值,及下標,初始值為原陣列第乙個元素

for(

int i =

1; i < arr.length; i++)

res[i]

= temp;

}return res;

}private

intfindmax

(int

arr,

int i,

int i2)

int max = arr[i]

;for

(int j = i; j <= i2; j++)}

return max;

}

每日一題 480 滑動視窗中位數

因為要尋找的是中位數,無非就是佇列中的第k個或 第k個加k 1個 2 維護乙個用於查詢中間值的佇列即可 唯一一點我不知道怎麼把ans直接轉成double的陣列 public double medianslidingwindow int nums,int k while rightelse right...

每日一題 480 滑動視窗中位數

避免每日太過鹹魚,一天搞定一道leetcode演算法題 難度 困難中位數是有序序列最中間的那個數。如果序列的大小是偶數,則沒有最中間的數 此時中位數是最中間的兩個數的平均數。例如 2,3,4 中位數是 3 2,3 中位數是 2 3 2 2.5 給你乙個陣列 nums,有乙個大小為 k 的視窗從最左端...

每日一題 239 滑動視窗最大值

最開始的想法是維護乙個list,每次滑動移除nums left 加入nums right 並對list進行重新排序,取出最大的值即可,但是最後超時 學習之後決定使用雙端佇列 總體的基本思想就是維護住乙個依次遞減的雙端佇列 總結為 以下幾點 1.隊首元素是當前的最大元素,如果新元素小於隊尾元素,那麼就...