給定乙個長度為n的數列a,再給定乙個長度為k的滑動視窗,從第乙個數字開始依次框定k個數字,求每次框定的數字中的最大值和最小值,依次輸出所有的這些值。
第一行包含兩個整數 n 和 k ,分別表示陣列的長度和滑動視窗長度。
第二行n個整數,表示數列元素的值。
第一行從左到右視窗看到的最小值。
第二行從左到右視窗看到的最大值。
831
3-1-
3536
7
-1-
3-3-
3333
3556
7
30%:n<=100 k<=20
60%:n<=5000 k<=20
100%:n<=10^6,每個元素不操過int型別
需要讀入輸出優化
#include
#define m(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
#define mod 19650827
using
namespace std;
inline
void
read
(int
&x)while
(ch>=
'0'&& ch<=
'9')
if(c==
'-')x=
-x;}
const
int maxn =
1e6+10;
inline
void
write
(int x)
struct node
node
(int pos,
int value)
} p[maxn]
;int n, m;
int a[maxn]
;void
get_max()
}}void
get_min()
}}intmain()
UOJ 47 滑行的視窗
給定乙個長度為n的數列a,再給定乙個長度為k的滑動視窗,從第乙個數字開始依次框定k個數字,求每次框定的數字中的最大值和最小值,依次輸出所有的這些值。下面有乙個例子陣列是 1 3 1 3 5 6 7 k 是3 視窗位置 視窗中的最小值 視窗中的最大值 1 3 1 3 5 3 6 7 1 3 1 3 1...
劍指offer 47 滑動視窗的最大值
題目 給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為 針對陣列的滑動視窗有以下6個 思路 暴力法,兩層迴圈,找到視窗的最大值 啟發或者坑 如果視窗大小k接近於n,那這個複雜度可能是n 2 class s...
4 7基於例項的學習
k nn在k n 0時效果更顯著,但是這必然帶來巨大計算量,使用kd樹能緩建情況。歸類到例項空間受控於例項與例項之間距離 1.數值型1.1 處理方式 歸一化 1.2 採用距離公式 歐幾里得 曼哈頓 city block 2.名詞性屬性 1.1 處理方式 1.2 無需量度尺寸 1.kd樹結構長什麼樣?...