LintCode C++代码 余弦相似度;

来源:互联网 发布:office mac 2016 密码 编辑:程序博客网 时间:2024/06/05 02:17

评测
Cosine similarity is a measure of similarity between two vectors of an inner product space that measures the cosine of the angle between them. The cosine of 0° is 1, and it is less than 1 for any other angle.

See wiki: Cosine Similarity

Here is the formula:

cosine-similarity

Given two vectors A and B with the same size, calculate the cosine similarity.

Return 2.0000 if cosine similarity is invalid (for example A = [0] and B = [0]).

思路: 先计算各个向量的内积;
为0 返回2;
计算两个向量的乘积;
返回相似度;

class Solution {public:    /**     * @param A: An integer array.     * @param B: An integer array.     * @return: Cosine similarity.     */    double cosineSimilarity(vector<int> A, vector<int> B) {        // write your code here        int m = A.size();        int count = 0 , count1 = 0 , count2 = 0;        for (int i =0; i < m; i++) {            count += A[i] * A[i];            count1 += A[i] * B[i];            count2 += B[i] * B[i];        }        if (count ==0 || count2 ==0)            return 2;        else            return count1/(sqrt(count)*sqrt(count2));    }};
原创粉丝点击