演算法面試題

2021-08-07 22:12:47 字數 640 閱讀 6991

戰爭遊戲的至關重要環節就要到來了,這次的結果將決定王國的生死存亡,小b負責首都的防衛工作。首都位於乙個四面環山的盆地中,周圍的n個小山構成乙個環,作為預警措施,小b計畫在每個小山上設定乙個觀察哨,日夜不停的瞭望周圍發生的情況。

一旦發生外地入侵事件,山頂上的崗哨將點燃烽煙,若兩個崗哨所在的山峰之間沒有更高的山峰遮擋且兩者之間有相連通路,則崗哨可以觀察到另乙個山峰上的烽煙是否點燃。由於小山處於環上,任意兩個小山之間存在兩個不同的連線通路。滿足上述不遮擋的條件下,一座山峰上崗哨點燃的烽煙至少可以通過一條通路被另一端觀察到。對於任意相鄰的崗哨,一端的崗哨一定可以發現一端點燃的烽煙。 小b設計的這種保衛方案的乙個重要特性是能夠觀測到對方烽煙的崗哨對的數量,她希望你能夠幫她解決這個問題。

輸入描述

輸入中有多組測試資料,每一組測試資料的第一行為乙個整數n(3<=n<=10^6),為首都周圍的小山數量,第二行為n個整數,依次表示為小山的高度h(1<=h<=10^9).

輸出描述

對每組測試資料,在單獨的一行中輸出能相互觀察到的崗哨的對數。

示例1

輸入

1 2 3 4 5

輸出思路:

演算法面試題

1 兩個有序的陣列求中位數 時間複雜度o log n m 這個演算法有一定的缺陷,僅做參考 2 如何解決hash衝突 3 調整陣列順序使奇數字於偶數前面 void reorderoddeven int pdata,unsigned int length 4 鍊錶中倒數第k個節點 listnode f...

演算法面試題

假設有n個人,1 n,從第乙個開始計數,到第k個人則出列,隨後從第k 1個人重新計數,再到k出列,直到剩下最後乙個,求最後乙個人的編號。字串排序,先把comparefunction寫出來,然後呼叫arr.sort comparefunction comparefunction function co...

演算法面試題三

螺旋佇列問題 看清一下數字排列的規律,設1點的座標是 0,0 x方向向右為正,y方向向下為正,列如7的座標是 1,1 2的座標是 0,1 3的座標是 1,1 程式設計實現輸入任意一點座標 x,y 輸出所對應的數字。21 22 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 1...