LeetCode最接近原点的K个点

执行用时 : 508 ms, 在K Closest Points to Origin的C++提交中击败了58.97% 的用户

内存消耗 : 39.3 MB, 在K Closest Points to Origin的C++提交中击败了77.94% 的用户

一开始以为可以直接用multiset过,想了一下好像不行,类似于结构体排序,选出最小的前K个就可以。

class Solution {
public:
    
    static bool check( vector<int>& pointsa , vector<int>& pointsb ){
        long long numa = 0 , numb = 0 ;
        for( int i = 0 ; i < pointsa.size() ; i++ ){
            numa += pointsa[i] * pointsa[i];
        }
        for( int i = 0 ; i < pointsb.size() ; i++ ){
            numb += pointsb[i] * pointsb[i];
        }
        return numa < numb;
        
    }
    vector<vector<int>> kClosest(vector<vector<int>>& points, int K) {
//         multiset<long long>flag;
        vector< vector<int> >flag;
        sort( points.begin() , points.end() , check );
        for( int i = 0 ; i < K ; i++ ) flag.emplace_back( points[i] );
        return flag;
    }
};

猜你喜欢

转载自blog.csdn.net/wuhenglan/article/details/89302891
今日推荐