lintcode-easy-Cosine Similarity
2016-02-24 13:53
519 查看
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:
Given two vectors A and B with the same size, calculate the cosine similarity.
Return
Example
Given A =
Return
Given A =
Return
See wiki: Cosine Similarity
Here is the formula:
Given two vectors A and B with the same size, calculate the cosine similarity.
Return
2.0000if cosine similarity is invalid (for example A = [0] and B = [0]).
Example
Given A =
[1, 2, 3], B =
[2, 3 ,4].
Return
0.9926.
Given A =
[0], B =
[0].
Return
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 if(A == null || B == null) return 2.0; if(A.length != B.length) return 2.0; int num = 0; int den1 = 0; int den2 = 0; for(int i = 0; i < A.length; i++){ num += A[i] * B[i]; den1 += A[i] * A[i]; den2 += B[i] * B[i]; } if(den1 == 0 || den2 == 0) return 2.0; return num / (Math.sqrt(den1)) / (Math.sqrt(den2)); } }
相关文章推荐
- SQL Server日期计算(使用DATEADD和DATEDIFF函数)
- Masonry的使用和介绍
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- oracle 两种认证方式总结
- 程序是怎样跑起来的-计算机组成原理概要
- MyBatis映射错误:There is no setter for property named xxx
- linux no space left on device的解决办法(iNode满导致)
- mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES)
- 在Unity中截屏需要注意的问题
- block
- tsiLdekniLoteerTyraniBnettalF.114
- android-studio快捷键(md格式)
- LinuxMint17.3Rosa下安装Apache流程
- fmemopen、open_memstream/wmemstream
- 一个小时内学习SQLite数据库
- 2016-02-24 获取设备 通知开关
- Fresco源代码分析
- 优秀企业家必须做好的三件事
- 史上最全的iOS面试题及答案
- PostgreSQL数据字典查询[持续更新]