47 滑行的視窗

2021-09-25 06:20:47 字數 1061 閱讀 5049

給定乙個長度為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樹結構長什麼樣?...