回复 2楼 peach5460
如果百度上能解决的,我就不会拿这上面来丢人了。
程序代码:
int element_count(const std::vector<int> &set, int e)
{
int left, right, middle;
left = 0, right = set.size() - 1;
int count = 0;
while (left <= right)
{
middle = (left + right) / 2;
if (set.at(middle) > e)
{
right = middle - 1;
}
else if (set.at(middle) < e)
{
left = middle + 1;
}
else
{
while (middle - 1 >= 0 && set.at(middle) == set.at(middle - 1)) middle -= 1;
while (set.at(middle) == set.at(middle + 1))
{
middle += 1;
++count;
}
return ++count;
}
}
return 0;
}
不用给我分,写的时候猛然发觉c++写多了,不会写C了...所以改了一下参数换成了STL的容器...
但是没用STL的特性...我测了一下,应该是没问题的...
判断个数的地方偷懒了,其实可以更高效一些...











