Conduct Dot Product of two large Vectors

1. two pointers

2. hashmap

3. 如果没有额外空间,如果一个很大,一个很小,适合scan小的,并且在大的里面做binary search

 1 package fb;
 2
 3 public class DotProduct {
 4
 5     public int dotPro(int[][] v1, int[][] v2) {
 6         int[][] shortV;
 7         int[][] longV;
 8         if (v1.length < v2.length) {
 9             shortV = v1;
10             longV = v2;
11         }
12         else {
13             shortV = v2;
14             longV = v1;
15         }
16
17         int res = 0;
18         for (int i=0; i<shortV.length; i++) {
19             int shortIndex = shortV[i][0];
20             int shortValue = shortV[i][1];
21             int longSeq = binarySearch(longV, shortIndex);
22             if (longSeq >= 0) {
23                 res += shortValue * longV[longSeq][1];
24             }
25         }
26         return res;
27     }
28
29     public int binarySearch(int[][] arr, int target) {
30         int l=0, r=arr.length-1;
31         while (l <= r) {
32             int m = (l+r)/2;
33             if (arr[m][0] == target) return m;
34             else if (arr[m][0] < target) l = m + 1;
35             else r = m - 1;
36         }
37         return -1;
38     }
39
40
41     /**
42      * @param args
43      */
44     public static void main(String[] args) {
45         // TODO Auto-generated method stub
46         DotProduct sol = new DotProduct();
47         int[][] v2 = new int[][]{{0,2},{1,3},{5,2},{7,1},{10,1}};
48         int[][] v1 = new int[][]{{1,6},{7,2}};
49         int res = sol.dotPro(v1, v2);
50         System.out.println(res);
51     }
52
53 }

转载于:https://www.cnblogs.com/EdwardLiu/p/6399867.html

FB面经Prepare: Dot Product相关推荐

  1. CUDA Samples: dot product(使用零拷贝内存)

    以下CUDA sample是分别用C++和CUDA实现的点积运算code,CUDA包括普通实现和采用零拷贝内存实现两种,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程C ...

  2. 向量点积(Dot Product),向量叉积(Cross Product)

    参考的是<游戏和图形学的3D数学入门教程>,非常不错的书,推荐阅读,老外很喜欢把一个东西解释的很详细. 1.向量点积(Dot Product) 向量点积的结果有什么意义?事实上,向量的点积 ...

  3. dot product【点积】

    (1)概念 点积在数学中,又称数量积(dot product; scalar product),是指接受在实数R上的两个向量并返回一个实数值标量的二元运算. 两个向量a = [a1, a2,-, an ...

  4. 【源码解读】Transformer的Scaled dot product部分详解

    def attention(query, key, value, mask=None, dropout=None):# shape:query=key=value---->[batch_size ...

  5. 15.计算几何:点积(Dot product)与叉积(Cross product)

    向量的内容只是前置知识,现在要讲的点积与叉积才是重点! 向量的基本运算是点积和叉积.计算几何的各种操作,几乎都基于这两种运算 文章目录 1.点积(Dot product) 1.1点积的定义[dot() ...

  6. CUDA Samples: Dot Product

    以下CUDA sample是分别用C++和CUDA实现的两个非常大的向量实现点积操作,并对其中使用到的CUDA函数进行了解说,各个文件内容如下: common.hpp: #ifndef FBC_CUD ...

  7. FB面经Prepare: Email User

    有一些账号,账号里面有一个或多个email, 如果两个账号有共同的email,则认为这两个账号是同一个人,找出哪些账号是同一个人 输入是这样的:数字是用户,字母是邮箱,有很多人有多个邮箱,找出相同的用 ...

  8. 向量点积(Dot Product)

    http://www.evernote.com/shard/s146/sh/e0d95bd1-68df-49d9-87c8-e21647d94e18/4d7af393bd986fd0c462ebd13 ...

  9. G面经prepare: Reorder String to make duplicates not consecutive

    字符串重新排列,让里面不能有相同字母在一起.比如aaabbb非法的,要让它变成ababab.给一种即可 Greedy: 跟FB面经Prepare task Schedule II很像,记录每个char ...

最新文章

  1. 利用二叉树的思想来实现分配和释放内存方法
  2. 英文翻译_科研论文英文翻译时需注意的事项及一些对策
  3. 以太网口差分电平_以太网物理层信号测试与分析
  4. uCOS-II核心算法分析(μCOS-Ⅱ)
  5. Vue项目中使用百度地图API
  6. Long Shadows Generate是一款在线使用纯CSS3实现长阴影的效果,一款强大的扁平化长投影制造器。...
  7. 移动机器人速度空间对比分析
  8. 2019-12-18 syscall(SYS_clock_gettime, CLOCK_MONOTONIC_RAW
  9. 前端性能优化—js代码打包 1
  10. C#把Xml转换为DataSet的两种方法
  11. 覆盖php扩展后服务挂了,PHP 扩展管理
  12. php中之美家庭儿童零食,适合孩子吃的零食有哪些
  13. 舱机器人尾巴毛茸茸_『新奇玩意』毛茸茸的机器人不仅可撸,还会摇尾巴
  14. ios键盘done中文_iOS键盘事件实现、控制
  15. 带你读懂《深入理解计算机系统》开篇
  16. Windows API一日一练 29 SelectObject和DeleteObject函数
  17. python selenium UI自动化解决验证码的4种方法
  18. 【pip】raise MaxRetryError(_pool, url, error or ResponseError(cause))
  19. 快速压缩视频大小方法
  20. 服务器虚拟打印机为什么经常打打不,打印机虚拟论文,关于制作PDF打印服务器相关参考文献资料-免费论文范文...

热门文章

  1. 计算机辅助设计基础学什么,东大计算机辅助设计基础X20秋学期《计算机辅助设计基础》在线平时作业3资料...
  2. 更改mysql数据库存放位置_更改mysql数据库存放位置
  3. 煮饭的机器人作文_公示|“笔随我心、心由笔动”作文大赛获奖名单
  4. leetcode 617. 合并二叉树 思考分析
  5. C#Convert.ToInt32(bool)方法-将bool值转换为int
  6. C++---两数之和
  7. Java——集合(TreeSet)
  8. c++ 怎样连接两个链表_LeetCode | 链表的入口,一文帮你搞定“环形链表”(python版,最简单解析)...
  9. 随机生成从大到小排序python_随机快速排序(使用Python描述)
  10. flink source 同步_大数据面试题-Flink