这道题推荐用哈希表更容易去做
所以我使用了c++中的unordered_map,去设计了一个哈希表
代码如下:
class Solution {
public:
int findLucky(vector<int>& arr) {
int i,len=arr.size();
unordered_map<int,int>hash;
for(i=0;i<len;i++){
hash[arr[i]]++;
}
int last=0;
for(i=0;i<len;i++){
if(hash[arr[i]]==arr[i] && last<arr[i]){
last=arr[i];
}
}
return (last>0)?last:-1;
}
};
最后的返回值,最好写三元运算符,如果要是写成if-else,会导致效率大大降低
可以看出两者的区别了把,在时间有着决定性的作用