OJ:Lintcode 余弦相似度

作者: DayDayUpppppp | 来源:发表于2017-02-19 09:42 被阅读10次
    image.png
    
    class Solution {
    public:
        /**
         * @param A: An integer array.
         * @param B: An integer array.
         * @return: Cosine similarity.
         */
    
        //如果vector 中的所有元素都为空,那么返回false
        bool is_zero(vector<int> a){
            for(auto it=a.begin();it!=a.end();it++){
                if(*it!=0){
                    return true;
                }
            }
            return false;
        }
        double cosineSimilarity(vector<int> A, vector<int> B) {
            // write your code here
            if(A.empty()==true){
                return 2.0000;
            }
    
            if((is_zero(A)==false)&&(is_zero(B)==false)){
                return 2.0000;
            }
        
    
            double res1=0;
    
            for(int i=0;i<A.size();i++){
                res1=res1+A[i]*B[i];
            }
    
            double res2=0;
            for(int i=0;i<A.size();i++){
                res2=res2+A[i]*A[i];
            }
            res2=sqrt(res2);
            
            double res3=0;
            for(int i=0;i<B.size();i++){
                res3=res3+B[i]*B[i];
            }
            res3=sqrt(res3);
    
            return res1/(res2*res3);
        }
    };
    
    

    相关文章

      网友评论

        本文标题:OJ:Lintcode 余弦相似度

        本文链接:https://www.haomeiwen.com/subject/duzdwttx.html