Title:
You are given an odd-length array of integers, in which all of them are the same, except for one single number.
Complete the method which accepts such an array, and returns that single different number.
The input array will always be valid! (odd-length >= 3)
Examples
[1, 1, 2] ==> 2 [17, 17, 3, 17, 17, 17, 17] ==> 3
我的:
#include <vector>
#include <iostream>
#include <math.h>
using namespace std;
int stray(std::vector<int> numbers){
if (numbers.size() / 2 == 0 && numbers.size()<3 ) {
return 0;
}
else
{
sort(numbers.begin(), numbers.end());
vector<int>::iterator iter;
for (iter = numbers.begin(); iter != numbers.end(); iter++) {
if (numbers[0] == numbers[1]) {
return numbers.back();
}
else {
return numbers.front();
}
}
}
return 0;
高手:
#include <algorithm>
int stray(std::vector<int> numbers)
{
std::sort(numbers.begin(), numbers.end());
return (numbers[0] != numbers[1]) ? numbers.front() : numbers.back();
};
(想到了三目但是没有用)
这篇博客讨论了一个编程问题,即如何从一个奇数长度的整数数组中找出唯一不同的数字。作者提供了两种解决方案,一种是简单的排序和比较,另一种是使用排序后的三目运算。这两种方法都能有效地找到数组中的异常值。

303

被折叠的 条评论
为什么被折叠?



