- 博客(89)
- 资源 (31)
- 收藏
- 关注
原创 Visual Odometry(视觉里程计): StereoScan Dense 3d Reconstruction in Real-time
介绍系统概述A特征匹配Bego-motion估计C立体匹配D3D重建实验结果运行结果及代码介绍从多个二维图片中重建3D影像是机器视觉必不可少的部分,这篇论文【1】提出的就是做3D重建的工作。这篇论文提出了一种巧妙的实时的方法做3D地图重建——使用稀疏特征和视觉里程计相结合的方法。这种方法包含了立体匹配和创建点云。用这种方法计算出来的视觉里程计是当年11年最好的。该法可以每秒执行25f,
2017-01-15 14:13:24 5690 8
原创 回溯详解及其应用:Leetcode 39 combination sum
原理初入门基本定义和概念举栗子编程思路实践生成符合规范的括号combination sumn queen原理初入门有时会遇到这样一类题目,它的问题可以分解,但是又不能得出明确的动态规划或是递归解法,此时可以考虑用回溯法解决此类问题。回溯法的优点 在于其程序结构明确,可读性强,易于理解,而且通过对问题的分析可以大大提高运行效率。但是,对于可以得出明显的递推公式迭代求解的问题,还是不要用
2017-01-31 16:47:37 4426
原创 从头到尾彻底解析哈希表算法
Top K 算法详解问题描述问题解析第一步Query统计第二步找出Top 10Hash表 算法的详细解析1除法散列法2平方散列法3斐波那契Fibonacci散列法适用范围基本原理及要点扩展最快的Hash表算法本文分为三部分内容,第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。Top K 算法详解问题
2017-01-31 15:36:31 719
原创 136. Single Number
Single Number136. Single Number使用排序再比较的方法,就会超时。class Solution {public: int singleNumber(vector<int>& nums) { int nums_len = nums.size(); if(nums_len == 1) return nums[0]; s
2017-01-31 15:14:25 254
原创 哈希表(Hash Table)原理及其实现
原理介绍哈希函数构造冲突处理举例拉链法hash索引跟B树索引的区别实现原理介绍哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表hash table(key,value) 的做法其实很简单,就是把K
2017-01-31 10:24:20 49374 1
原创 167. Two Sum II - Input array is sorted \ 122. Best Time to Buy and Sell Stock II
Two Sum II - Input array is sortedBest Time to Buy and Sell Stock II167. Two Sum II - Input array is sortedclass Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { i
2017-01-31 09:10:27 287
原创 268. Missing Number
Missing Number268. Missing Numberclass Solution {public: int missingNumber(vector<int>& nums) { int nums_len = nums.size() - 1; for(int i = 0; i <= nums_len; i++) { if(
2017-01-28 21:52:54 192
原创 53. Maximum Subarray \ 35. Search Insert Position
Maximum SubarraySearch Insert Position53. Maximum Subarray这种题型一般就是使用DP来做。里面涉及的东西就是使用一个数组存储每次增加一个数字以后的最大数。class Solution {public: int maxSubArray(vector<int>& nums) { int n = nums.size();
2017-01-26 12:53:55 236
原创 67. Add Binary \ 168. Excel Sheet Column Title
Add BinaryExcel Sheet Column Title67. Add Binaryclass Solution {public: string addBinary(string a, string b) { int a_len = a.length() - 1; int b_len = b.length() - 1; int
2017-01-26 10:47:05 209
原创 204. Count Primes \ 223. Rectangle Area
Rectangle AreaCount Primes223. Rectangle Areaclass Solution {public: int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { int r1_x = abs(A - C); int r2_x = ab
2017-01-26 01:25:45 208
原创 326. Power of Three \ 258. Add Digits \ 263. Ugly Number \ 231. Power of Two
Ugly NumberAdd DigitsPower of ThreePower of Two263. Ugly Numberclass Solution {public: bool isUgly(int num) { int ungly_set[] = {2, 3, 5}; if(num <= 0) return false;
2017-01-26 00:32:08 358
翻译 如何写出运行速度更快的代码:硬件篇
介绍为什么需要更高效的代码加速的意义硬件平台multicore vs manycoreInstruction level parallelismSIMDSimultaneous MultithreadingMemory HierarchySystem Architecture介绍这门课会学到OpenMP、CUDA、Hadoop的使用,想想真是激动,一门课要学这么多东西。为什么需要更
2017-01-25 11:37:37 2668
原创 12. Integer to Roman \ 13. Roman to Integer
Integer to Roman罗马数字实现Integer to Roman罗马数字1~9: {“I”, “II”, “III”, “IV”, “V”, “VI”, “VII”, “VIII”, “IX”};10~90: {“X”, “XX”, “XXX”, “XL”, “L”, “LX”, “LXX”, “LXXX”, “XC”};100~900: {“C”, “CC”, “CCC”, “CD
2017-01-24 11:28:14 230
原创 9. Palindrome Number
这道题看起来简单,但是使用反转会使用一个或两个整数,会导致 Memory Limit Exceeded class Solution {public: bool isPalindrome(int x) { int i=x, n=0; while(i>0) { n=i%10+n*10; i/=10
2017-01-23 01:20:20 233
原创 leetcode 7. Reverse Integer \ 8. String to Integer (atoi)
Reverse IntegerString to Integer atoi7. Reverse Integerclass Solution {public: int reverse(int x) { long long result = 0; while(x != 0) { result = result*10 + x%10;
2017-01-22 22:01:30 202
原创 leetcode 34. Search for a Range
题目描述找到一个升序序列中某个数在哪个范围内,没有的话返回【-1,-1】 Given an array of integers sorted in ascending order, find the starting and ending position of a given target value.Your algorithm’s runtime complexity must be in
2017-01-22 10:57:58 168
原创 leetcode 289: Game of Life
问题描述解题思路代码实现问题描述According to the Wikipedia’s article: “The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970.”Given a bo
2017-01-22 10:40:00 282
原创 31. Next Permutation \ 33. Search in Rotated Sorted Array
next permutation算法思想实现Search in Rotated Sorted Array31. next permutation算法思想对当前排列从后向前扫描,找到一对为升序的相邻元素,记为i和j(i < j)。如果不存在这样一对为升序的相邻元素,则所有排列均已找到,算法结束;否则,重新对当前排列从后向前扫描,找到第一个大于i的元素k,交换i和k,然后对从j开始到结束的子序列反
2017-01-21 11:03:06 225
原创 18. 4Sum
18. 4Sum一开始想用O(n^2)复杂度解决它,两对变量两边变动,但是我发现在中间那一对为0的情况下,最两端的不知道怎么走。虽然可以使用一个队列存起来,但是感觉太麻烦了。class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { int nums_len = n
2017-01-20 21:48:05 245
翻译 2017 ICM/MCM A题 管理赞比西河 Managing The Zambezi River
问题描述提交要求问题描述问题A:管理赞比西河赞比西河上的卡里巴水坝是非洲较大的水坝之一。它的建设是有争议的,南非风险管理研究所的2015年报告包括一个警告,大坝是急需维护。赞比西河管理局(ZRA)可提供若干选择,以解决这一问题。 ZRA特别感兴趣的有三个选项: (选项1)修复现有的Kariba水坝(选项2)重建现有的Kariba水坝,或(选项3)拆除Kariba水坝,并更换为沿赞比西河的一系列十
2017-01-20 15:59:04 3416
翻译 2017 ICM/MCM D题 Optimizing the Passenger Throughput at an Airport Security Check
问题描述参考链接问题描述在机场安全检查站优化乘客吞吐量继2001年9月11日美国发生恐怖袭击事件后,全世界的机场安全状况得到显着改善。机场有安全检查站,在那里,乘客及其行李被检查爆炸物和其他危险物品。这些安全措施的目的是防止乘客劫持或摧毁飞机,并在旅行期间保持所有乘客的安全。然而,航空公司有既得利益,通过最小化他们在安全检查站排队等候并等待他们的航班的时间,为乘客保持积极的飞行体验。因此,在希望之
2017-01-20 15:55:25 2681
翻译 2017 ICM/MCM B题(离散型) Merge After Toll
多车道有限接入收费公路使用“坡道收费”和“障碍收费”来收取驾驶员的收费。斜坡收费是在高速公路的入口或出口匝道处的收集机构,我们关心的点并不在这里。障碍收费是一排跨过高速公路的收费站,垂直于交通流的方向。通常(总是)更多的收费站比交通车道(见前2005年MCM问题B)。因此,当驶出收费站时,车辆必须从较大数量的收费站出口车道“扇入”到较少数量的常规行驶车道。收费广场是高速公路需要用于促进障碍收费的区域
2017-01-20 15:46:09 3484
翻译 2017 ICM/MCM F Migration to Mars: Utopian Workforce of the 2100 Urban Society
问题描述迁移到火星:2100城市社会的乌托邦劳动力国际机构,星际金融与勘探政策实验室(LIFE),最近(在今年的2095年)完成了一系列短期计划的生活实验我们的邻居星球,火星。新技术,包括个性化人工增强单元,将很快使人类能够在2100年之前在火星上居住制造的城市。第一波移民潮叫做人口零,将包括10,000人。LIFE代理机构启动了UTOPIA:2100项目,旨在为22世纪创造最佳员工队伍,为所有人提
2017-01-20 15:41:13 1062
翻译 2017 ICM/MCM Problem E: Sustainable Cities Needed!
题目理解可持续发展的城市任务References题目理解:可持续发展的城市许多社区正在实施智能增长计划,以考虑长期,可持续的规划目标。“聪明的成长是关于帮助每个城镇和城市变成更加经济繁荣,社会公平和环境可持续的生活地方的意思。”[2]智能增长的重点是建设拥抱可持续发展的城市 - 经济繁荣,社会公平,环境可持续。这个任务比以往任何时候都重要,因为世界正在迅速城市化。预计到2050年,世界人口的6
2017-01-20 15:33:02 1460
翻译 2017 ICM/MCM 翻译 Problem C: “Cooperate and navigate”
1题目描述2题目要求3额外的信息1、题目描述问题C:“合作和导航” 由于道路的数量,美国许多地区的交通容量有限。例如,在大西雅图地区,司机在交通高峰时段遇到长时间的延误,因为交通流量超过了道路网络的设计容量。对于这个问题上,州际公路5号,90号和405号以及州道路520号尤其需要注意。 自动驾驶和合作车已被提出作为增加公路容量的解决方案,而不增加车道或道路的数量。交通流和对方在这一点上还不太
2017-01-20 15:30:47 1481
原创 11. Container With Most Water \ 16. 3Sum Closest \ 15. 3Sum
我发现花时间去思考题目怎么做,要靠自己纯粹想出来是很困难的,所以我选择10分钟想不出来就好好理解别人的思路,转化为自己的。没有什么别的技巧,唯熟练尔。这道题先用暴力破解,超时:这种O(n^2)的复杂度一般都是扑街的。public int maxArea1(int[] height){ if ( (height == null) || (height.length <= 1) )
2017-01-20 00:46:59 290
原创 4. Median of Two Sorted Arrays
4. Median of Two Sorted Arrays法一:O(n)的复杂度,先合并再计算中值。class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { vector<int> nums_merge; float res
2017-01-18 20:07:22 237
原创 189. Rotate Array \ 169. Majority Element \ Best time to buy
Rotate ArrayMajority Element 189. Rotate Array法一:class Solution {public: void rotate(vector<int>& nums, int k) { queue<int> tmp; k = k%nums.size(); k = nums.size() - k;
2017-01-18 17:20:12 269
原创 283. Move Zeroes \ 219. Contains Duplicate II \ 217. Contains Duplicate
Move ZeroesContains Duplicate IIContains Duplicate283. Move Zeroesclass Solution {public: void moveZeroes(vector<int>& nums) { int count = 0; int nums_len = nums.size(); f
2017-01-18 16:22:06 196
原创 412. Fizz Buzz \ 404. Sum of Left Leaves
412法一:class Solution {public: vector<string> fizzBuzz(int n) { vector<string> result; for(int i = 1; i <= n; i++) { char tmp[10]; if(!(i % 15))
2017-01-17 15:41:27 336
原创 为什么要进行代码加速?
背景自动优化总结How to write fast code不是教你如何写代码更快,而是教你如何写更快的代码。首先我们需要了解为什么需要进行代码加速?要写一些并行的代码进行加速?背景 从这幅图可以了解到吃CPU福利的纯粹代码加速已经不行了,单个CPU加速连续代码已经到了极限,再往上收到CPU功耗等等的制约。与此同时,层次化存储使得CPU和存储器之间的瓶颈也越来越大。所以使得代码发挥出硬件上的效
2017-01-17 10:51:22 1731 2
原创 448. Find All Numbers Disappeared in an Array \ 414. Third Maximum Number
448法一:class Solution {public: vector<int> findDisappearedNumbers(vector<int>& nums) { int nums_len = nums.size(); vector<int> result; int *bucket = new int[nums_len+1]();
2017-01-16 15:04:15 269
原创 摄像头标定(carlibration)、Homography以及它的matlab实现
Homogeneous CoordinatesPin-hole camera ModelStandard Perspective Camera Modelaffine camera model计算标定矩阵总结homographyMatlab实现图片拼接计算H把你的照片嵌入海报图片拼接Homogeneous Coordinates 点的二维坐标可以用三维表示,因为用二维怎么表示无
2017-01-16 11:20:26 8031 5
原创 485. Max Consecutive Ones \ 118. Pascal's Triangle
Pascals Triangle 法一:class Solution {public: int findMaxConsecutiveOnes(vector<int>& nums) { int result_max = 0; int nums_len = nums.size(); int tmp = 0; if(!nums_len
2017-01-15 19:36:09 398
原创 27. Remove Element \ 66. Plus One \ 88. Merge Sorted Array
27. Remove Element法一:class Solution {public: int removeElement(vector<int>& nums, int val) { for(vector<int>::iterator it = nums.begin(); it != nums.end();) { if(*it =
2017-01-15 18:18:24 359
原创 leetcode stack 232. Implement Queue using Stacks
法一:使用两个栈模拟队列。class Queue {private: stack<int> q_input; stack<int> q_output;public: // Push element x to the back of queue. void push(int x) { q_input.push(x); } // Remo
2017-01-14 23:17:49 350
原创 ORB-SLAM: A Versatile and Accurate Monocular SLAM Syetem 讲解 3
非线性优化Bundle Adjustment位姿图优化相对Sim3优化graph SLAMg2o多角度几何学homographyfundamental matrix在ORB-SLAM中,地图初始化设计homography和fundamental matrix。在BA方面涉及cost function、optimization、李群。位姿优化方面有Sim约束。非线性优化Bundle A
2017-01-14 21:37:50 1949 3
原创 ORB-SLAM: A Versatile and Accurate Monocular SLAM Syetem 讲解 2
IV自动地图初始化V追踪AORB特征提取B从前面的帧初始化位姿C从全局重定位来初始化位姿D追踪局部图E新的关键帧插入VI局部地图A关键帧插入B对近期的点云进行去冗余C新的点云生成D局部地图的BAE局部帧去冗余VII闭环检测A闭环的候选检测B计算相似转换C闭环融合D关键图的优化VII实验ANewCollege上的表现B在TUM benchmark中的定位准确度
2017-01-13 23:04:20 2709
原创 leetcode 24. Swap Nodes in Pairs \ 21. Merge Two Sorted Lists
这个算法就是把前后节点交换为知,记住每个节点存储在内存中某个地方,指向每个节点的地址是一样,不一样的是每个节点的下一个节点的地址,改变这个即可。法一:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) :
2017-01-13 19:56:29 306
原创 leetcode 83. Remove Duplicates from Sorted List
法一:遍历一遍,如果发现重复的就去掉这个节点。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {pu
2017-01-13 16:18:02 183
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人