LintCode "The Smallest Difference"
2015-10-02 13:02
393 查看
Binary search.
View Code
class Solution { int _findClosest(vector<int> &A, int v) { int s = 0, e = A.size() - 1; int ret = INT_MAX; while(s <= e) { int mid = (s + e) / 2; int vmid = A[mid]; int dist = abs(vmid - v); ret = min(ret, dist); if(vmid == v) return 0; if(vmid < v) { s = mid + 1; } else if(vmid > v) { e = mid - 1; } } return ret; } public: /** * @param A, B: Two integer arrays. * @return: Their smallest difference. */ int smallestDifference(vector<int> &A, vector<int> &B) { sort(A.begin(), A.end()); int ret = INT_MAX; for(auto vb : B) { ret = min(ret, _findClosest(A, vb)); } return ret; } };
View Code
相关文章推荐
- javascript学习笔记2
- JSP如何获取客户端真实IP地址
- javascript学习笔记1
- JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)
- BootStrap 下拉框插件
- javascript学习笔记
- JavaScript权威指南学习之第4章 表达式和运算符
- JQuery的Ajax()向后台传参方式
- 单行、多行 注释.HTML
- 【nodemailer】 初试
- Node.js第三方模块之download
- AngularJS 提交表单的方式(一)
- Git Feature分支
- socket 、webservices、Json的区别
- 如何将js动态的写入到某个div中
- jquery鼠标悬停和离开事件(可用于下拉菜单等)
- js事件委托
- 前端素材汇总(持续更新中......)
- json解析
- hadoop namenode无法启动,提示Failed on local exception的解决方法