有趣的题目
空间1mb,所以开数组的算法就不要想了(我一开始没看到……)
仔细读题,然后发现这里他限定众数为出现超过n div 2次
也就是说,这个数可以对应每一个不相同的数消掉,最终还剩下这个数
也就是说,我们遍历,遇到不相同的就两两抵消,最终剩下的一定是ans
得解,
var n,i,s,ans,x:longint;
begin
readln(n);
s:=;
for i:= to n do
begin
read(x);
if (s=) then
begin
inc(s);
ans:=x;
end
else if ans=x then inc(s)
else dec(s);
end;
writeln(ans);
end.
我需要锻炼思维能力,恩恩