主元素问题
n 个数中求超过50% 出现1次数的数
1.首先我想到的是
直接 map 数字和出现次数o(n)
2.抵消法 (神犇才能想出来)
从前到后
取数据 发现和标定数据 不相同 ,抵消,相同 标记次数++ ,O(n)
我看到的表情,啊,还能这样,不是
#define f(i,l,r) for(int i=l;i<=r;++i) int mahorityElement(vector<int> & v) { int m,c=0; int len = v.size(); f(i,0,len-1) c==0?m=v[i],c=1:m==v[i]?c++:c--; return m; }
不摸着石头过河,难道要在温柔乡睡到天昏地暗。