位元組筆試題 台階積水問題

2021-10-05 02:29:31 字數 1257 閱讀 7775

在網上看到的題目,沒事拿來練練手,比較簡單。

強迫症,把前兩題給ps掉了,哈哈~~

咋一看這道題,總感覺在考察我們資料結構,比如構造乙個多邊形,算出面積,然後減去台階所在空間,好像也不夠巧妙吧。算了,用最直觀的方式解一下(有大神看到,記得指點一二):

(1) 算出最高的台階數;

// 找出最高的台階

intmaxvalinsteps

(uint32_t

*steparr,

uint32_t nsize)

return maxval;

}

(2)計算第n層時,把此層第乙個台階,和最後乙個不低於n的台階,填充中間的凹陷部分;

// 計算第n層的積水量

intculnthlevelwaters

(uint32_t

*steparr,

uint32_t nsize,

uint32_t n)

}// 找最後乙個台階

for(

uint32_t i = nsize -

1; i >=

0; i--)}

// 填充中間的凹陷部分

for(

uint32_t i = bpos; i <= epos; i++)}

return nwaters;

}

(3) 從1開始,依次填充每一層,累加的積水量;

// 計算台階積水量

intculfootstepwaters

(uint32_t

*steparr,

uint32_t nsize)

return sumwaters;

}

這裡偷下懶,直接構造資料執行了哈,執行結果:6

int

main

(int agrc,

char

**agrv)

;printf

("sum-water = %d\n"

,culfootstepwaters

(steparr,

sizeof

(steparr)

/sizeof

(uint32_t))

);return0;

}

位元組跳動筆試題

要求 輸入陣列長度,然後輸入陣列中的各個元素,最後輸入整數k,要求找出陣列中三個元素小於k的三個元素,例如 輸入陣列長度 6 輸入陣列元素 2 0 1 2 3 6 輸出三元組 共4個 下面給出思路和 思路 1 獲得使用者輸入的陣列長度n,若n不為整數,則提示錯誤。2 建立陣列。3 獲得使用者輸入的陣...

位元組跳動2019筆試題

小明國慶節來北京玩,北京有n個景點,第 i 個景點的評分用a i 表示,兩個景點i,j之間的距離為j i j i 小明一天只能遊玩兩個景點,我們認為總評分是兩個景點的評分之和減去兩個景點之間的距離,即為a i a j i j。那麼小明選擇哪兩個景點才會總評分最大呢?輸入格式 第一行包含整數n。第二行...

位元組跳動歷屆筆試題(1)

有三隻球隊,每只球隊編號分別為球隊1,球隊2,球隊3,這三隻球隊一共需要進行 n 場比賽。現在已經踢完了k場比賽,每場比賽不能打平,踢贏一場比賽得一分,輸了不得分不減分。已知球隊1和球隊2的比分相差d1分,球隊2和球隊3的比分相差d2分,每場比賽可以任意選擇兩隻隊伍進行。求如果打完最後的 n k 場...