设计思路
可以在表中找到两个不同的id并相消,最后保留的id就是水王,也就是在表中超过50%的id
#include<iostream> using namespace std; int Find(int num[], int n) { int i,index = 0,k = 0; for (i = 0; i < n; i++) { if (k== 0) { index = num[i]; k= 1; } else { if (index == num[i]) { k++; } else { k--; } } } return index; } int main() { int num, shui; int arr[] = {1,2,2,4,5,2,2,2,4,3,2,2,2,5}; num = sizeof(arr)/sizeof(int); shui = Find(arr, num); cout<<"水王是"<<shui<<endl; }
4个人总结
通过利用数组,相同id相消的原则进行编码,就可以得出结果