回复 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的特性...我测了一下,应该是没问题的...
判断个数的地方偷懒了,其实可以更高效一些...