題目
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;
}
}