1. 程式人生 > >5、找出旋轉有序數列的中間值

5、找出旋轉有序數列的中間值

描述:

給出一個有序數列隨機旋轉之後的數列,如原有序數列為:[0,1,2,4,5,6,7] ,旋轉之後為[4,5,6,7,0,1,2]。 假定數列中無重複元素,且數列長度為奇數。 求出旋轉數列的中間值。如數列[4,5,6,7,0,1,2]的中間值為4。

輸入:

4,5,6,7,0,1,2。

輸出:

4。

輸入樣例:

1
1,2,3
4,5,6,7,0,1,2
12,13,14,5,6,7,8,9,10

輸出樣例:

1
2
4
9

程式碼示例:

#include <iostream>
#include <bits/stdc++.h>

using namespace
std; int main() { char line[1000001]; int temp = 0; while (cin.getline(line, 1000000)) { vector<int> vec; char *p = strtok(line, ","); while(p) { sscanf(p, "%d", &temp); vec.push_back(temp); p = strtok(NULL, ","); } sort(vec.begin(),vec.end()); cout
<< vec[vec.size()/2] << endl; } return 0; }