FB面经Prepare: Dot Product
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相关推荐
- CUDA Samples: dot product(使用零拷贝内存)
以下CUDA sample是分别用C++和CUDA实现的点积运算code,CUDA包括普通实现和采用零拷贝内存实现两种,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程C ...
- 向量点积(Dot Product),向量叉积(Cross Product)
参考的是<游戏和图形学的3D数学入门教程>,非常不错的书,推荐阅读,老外很喜欢把一个东西解释的很详细. 1.向量点积(Dot Product) 向量点积的结果有什么意义?事实上,向量的点积 ...
- dot product【点积】
(1)概念 点积在数学中,又称数量积(dot product; scalar product),是指接受在实数R上的两个向量并返回一个实数值标量的二元运算. 两个向量a = [a1, a2,-, an ...
- 【源码解读】Transformer的Scaled dot product部分详解
def attention(query, key, value, mask=None, dropout=None):# shape:query=key=value---->[batch_size ...
- 15.计算几何:点积(Dot product)与叉积(Cross product)
向量的内容只是前置知识,现在要讲的点积与叉积才是重点! 向量的基本运算是点积和叉积.计算几何的各种操作,几乎都基于这两种运算 文章目录 1.点积(Dot product) 1.1点积的定义[dot() ...
- CUDA Samples: Dot Product
以下CUDA sample是分别用C++和CUDA实现的两个非常大的向量实现点积操作,并对其中使用到的CUDA函数进行了解说,各个文件内容如下: common.hpp: #ifndef FBC_CUD ...
- FB面经Prepare: Email User
有一些账号,账号里面有一个或多个email, 如果两个账号有共同的email,则认为这两个账号是同一个人,找出哪些账号是同一个人 输入是这样的:数字是用户,字母是邮箱,有很多人有多个邮箱,找出相同的用 ...
- 向量点积(Dot Product)
http://www.evernote.com/shard/s146/sh/e0d95bd1-68df-49d9-87c8-e21647d94e18/4d7af393bd986fd0c462ebd13 ...
- G面经prepare: Reorder String to make duplicates not consecutive
字符串重新排列,让里面不能有相同字母在一起.比如aaabbb非法的,要让它变成ababab.给一种即可 Greedy: 跟FB面经Prepare task Schedule II很像,记录每个char ...
最新文章
- 利用二叉树的思想来实现分配和释放内存方法
- 英文翻译_科研论文英文翻译时需注意的事项及一些对策
- 以太网口差分电平_以太网物理层信号测试与分析
- uCOS-II核心算法分析(μCOS-Ⅱ)
- Vue项目中使用百度地图API
- Long Shadows Generate是一款在线使用纯CSS3实现长阴影的效果,一款强大的扁平化长投影制造器。...
- 移动机器人速度空间对比分析
- 2019-12-18 syscall(SYS_clock_gettime, CLOCK_MONOTONIC_RAW
- 前端性能优化—js代码打包 1
- C#把Xml转换为DataSet的两种方法
- 覆盖php扩展后服务挂了,PHP 扩展管理
- php中之美家庭儿童零食,适合孩子吃的零食有哪些
- 舱机器人尾巴毛茸茸_『新奇玩意』毛茸茸的机器人不仅可撸,还会摇尾巴
- ios键盘done中文_iOS键盘事件实现、控制
- 带你读懂《深入理解计算机系统》开篇
- Windows API一日一练 29 SelectObject和DeleteObject函数
- python selenium UI自动化解决验证码的4种方法
- 【pip】raise MaxRetryError(_pool, url, error or ResponseError(cause))
- 快速压缩视频大小方法
- 服务器虚拟打印机为什么经常打打不,打印机虚拟论文,关于制作PDF打印服务器相关参考文献资料-免费论文范文...
热门文章
- 计算机辅助设计基础学什么,东大计算机辅助设计基础X20秋学期《计算机辅助设计基础》在线平时作业3资料...
- 更改mysql数据库存放位置_更改mysql数据库存放位置
- 煮饭的机器人作文_公示|“笔随我心、心由笔动”作文大赛获奖名单
- leetcode 617. 合并二叉树 思考分析
- C#Convert.ToInt32(bool)方法-将bool值转换为int
- C++---两数之和
- Java——集合(TreeSet)
- c++ 怎样连接两个链表_LeetCode | 链表的入口,一文帮你搞定“环形链表”(python版,最简单解析)...
- 随机生成从大到小排序python_随机快速排序(使用Python描述)
- flink source 同步_大数据面试题-Flink