今天国际最新消息新闻/网站关键词如何优化上首页
剑指offer第四十题
- 题目如下
- 思路与代码
- 哈希表(没啥好说的)
- 先排序再查找
题目如下
思路与代码
哈希表(没啥好说的)
遇到了就map++,然后查表只有一次就存进去,但是最后要排个序
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param array int整型vector * @return int整型vector*/vector<int> FindNumsAppearOnce(vector<int>& array) {// write code heremap<int,int>mp;int len=array.size();for(int i=0;i<len;i++){mp[array[i]]++;}vector<int>v;for(int i=0;i<len;i++){if(mp[array[i]]==1) v.push_back(array[i]);}if(v[0]>v[1]) swap(v[0],v[1]);return v;}
};
先排序再查找
排序之后如果出现多次会连在一起,那就找找前后就可以了
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param array int整型vector * @return int整型vector*/vector<int> FindNumsAppearOnce(vector<int>& array) {// write code heresort(array.begin(),array.end());vector<int> c;for(int i=0;i<array.size();i++){if(i-1<0){if(array[0]!=array[1]) c.push_back(array[0]);}else{if(array[i-1]!=array[i]&&array[i]!=array[i+1])c.push_back(array[i]);else if(i+1==array.size()&&array.size()&&array[array.size()-1]!=array[array.size()-2])c.push_back(array[array.size()-1]);}if(c.size()==2) break;}return c;}
};