LintCode sort函数用不好 sort(A.begin(),B.end(),less<int>());
结构体用法
class Solution {
public:
/**
* @param A: an integer array
* @param target: An integer
* @param k: An integer
* @return: an integer array
*/
struct data{
int a;
int target;
bool operator <(const data&y)const{
if(abs(a-target)!=abs(y.a-y.target)) return abs(a-target)<abs(y.a-y.target);
return a<y.a;
}
};
vector<int> kClosestNumbers(vector<int> &A, int target, int k) {
// write your code here
vector<data> vdata;
for(int i=0;i<A.size();i++){
data temp;
temp.a=A[i];
temp.target=target;
vdata.push_back(temp);
}
sort(vdata.begin(),vdata.end());
vector<int> ans;
for(int i=0;i<k;i++) ans.push_back(vdata[i].a);
return ans;
}
};