2013年5月12日 星期日

(C++) 找出最長平台的長度,並將之印出

在一個已經排序好的數字陣列,找出最常的平台並將之印出,所謂最常的平台,譬如一個陣列為1, 2, 2, 3, 3, 3, 4, 5, 5, 6,其中3, 3, 3即為此陣列的最常平台。


#include < iostream >
#include < vector >

using namespace std;

int longest_plateau(vector::iterator itr, vector::iterator itrEnd, int& number)
{
 int length = 1;

 for(itr += 1; itr != itrEnd; ++itr)
 {
  if(*itr == *(itr - length))
  {
   number = *itr;
   ++length;
  }
 }
 return length;
}

int main(void)
{
 int arrayNumbers[] = {1, 2, 2, 3, 3, 3, 4, 5, 5, 6};
 vector numbers(arrayNumbers, arrayNumbers + 10);
 int number = 0;
 int length = longest_plateau(numbers.begin(), numbers.end(), number);

 for(int i = 0; i < length; ++i)
  cout << number << " ";

}

沒有留言:

張貼留言