LintCode 余弦相似度

題目

wiki鏈接: Cosine Similarity
這里給出公式:

/media/problem/cosine-similarity.png

給你兩個相同大小的向量 A B,求出他們的余弦相似度
返回2.0000
如果余弦相似不合法 (比如 A = [0] B = [0]).

樣例
給出 A =[1, 2, 3], B =[2, 3 ,4]
返回 0.9926.
給出 A =[0], B =[0]
返回 2.0000

分析

這道題較為簡單,直接計算就可以了

代碼

class Solution {
    /**
     * @param A: An integer array.
     * @param B: An integer array.
     * @return: Cosine similarity.
     */
    public double cosineSimilarity(int[] A, int[] B) {
        // write your code here
                int ab=0;
        if(sumArray(A) == 0 || sumArray(B) == 0)
        {
            return 2.00000;
        }
        for(int i=0;i<A.length;i++)
        {
            ab += A[i] * B[i];
        }
        return ab/Math.sqrt(sumArray(A))/Math.sqrt(sumArray(B));
    }
    
        public double sumArray(int[] A)
    {
        int sum = 0;
        for(int i=0;i<A.length;i++)
        {
            sum += A[i] * A[i];
        }
        return sum;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 原文:http://blog.csdn.net/nishiwodeangel/article/details/12...
    mogu醬閱讀 1,188評論 0 7
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,766評論 0 33
  • 相似度度量(Similarity),即計算個體間的相似程度,相似度度量的值越小,說明個體間相似度越小,相似度的值越...
    MiracleJQ閱讀 5,485評論 1 6
  • 黃飛的戰略目標是,成為千萬富翁,目標在40歲前實現,戰術目標,30歲錢完成20萬的積累! 1.開始建立強大的圈子,...
    深藍2007閱讀 273評論 0 0
  • 女神姐姐: 女神姐姐,不知道你現在在哪座城市,不知道你現在在做什么工作,也不知道你最近心情怎么樣,從高考結束后,就...
    大喵小鑫閱讀 276評論 1 2