題目要求:給定乙個陣列和視窗大小,視窗從左向右依次滑動,判斷視窗中最大的值是多少,返回乙個陣列
例如:給定陣列 ,視窗大小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.隊首元素是當前的最大元素,如果新元素小於隊尾元素,那麼就...