試題編號:
201612-1
試題名稱:
中間數時間限制:
1.0s
記憶體限制:
256.0mb
問題描述:
問題描述
在乙個整數序列a1, a2, …, an中,如果存在某個數,大於它的整數數量等於小於它的整數數量,則稱其為中間數。在乙個序列中,可能存在多個下標不相同的中間數,這些中間數的值是相同的。
給定乙個整數序列,請找出這個整數序列的中間數的值。
輸入格式
輸入的第一行包含了乙個整數n,表示整數序列中數的個數。
第二行包含n個正整數,依次表示a1, a2, …, an。
輸出格式
如果約定序列的中間數存在,則輸出中間數的值,否則輸出-1表示不存在中間數。
樣例輸入
62 6 5 6 3 5
樣例輸出
5
樣例說明
比5小的數有2個,比5大的數也有2個。
樣例輸入
43 4 6 7
樣例輸出
-1
樣例說明
在序列中的4個數都不滿足中間數的定義。
樣例輸入
53 4 6 6 7
樣例輸出
-1
樣例說明
在序列中的5個數都不滿足中間數的定義。
評測用例規模與約定
對於所有評測用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。
問題分析:
在本題中,我們首先需要宣告兩個變數陣列和n,判斷的函式也相應的給出並傳入陣列和n值。
我用的方法比較淳樸點啦,分別利用三個指標,i,j,z來定位陣列中的位置資訊。i表示陣列中的乙個點,j和z分別表示其右面和左面的數值。
其工作流程如下圖:
#include
#include
using namespace std;
void ifmiddlenum(int a,int n)
if (a[z]>a[i])
}if (a[j] < a[i])
if (a[j] > a[i])}}
if (minnum == maxnum)
if (minnum != maxnum)
}int main()
ifmiddlenum(vec,num);
return 0;
}
Hdfs 原始碼解析(2)
namenode啟動 namenode持久化了檔案和塊之間的對應關係,也就是在namenode資料目錄下的current fsimage目錄,namenode啟動的時候,會將這個檔案載入到記憶體裡。塊和機器的對應關係,namenode並不持久化,也就是說,namenode在啟動的時候,並不知道檔案塊...
Handler原始碼解析2
handler原始碼解析1 handler原始碼解析2 享元設計模式 記憶體復用,使用同一塊記憶體空間,bitmap,recycleview都有使用這種思想 在loop從訊息佇列中取出訊息並分發完後,並不會把訊息物件銷毀,而是通過msg.recycleunchecked 方法清空訊息放入訊息池進行 ...
Handler原始碼解析2
handler原始碼解析1 handler原始碼解析2 享元設計模式 記憶體復用,使用同一塊記憶體空間,bitmap,recycleview都有使用這種思想 在loop從訊息佇列中取出訊息並分發完後,並不會把訊息物件銷毀,而是通過msg.recycleunchecked 方法清空訊息放入訊息池進行 ...