自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ciderpark

It has been a terribly long time.

  • 博客(26)
  • 收藏
  • 关注

原创 【C/C++】宏、宏的作用/副作用

基础:宏是预处理指令;宏的本质是简单的字符串替换,预处理时进行宏替换;可在定义宏时要求它接收参数,宏替换时会代入参数;宏的名字不允许重载;宏预处理代码没有能力处理递归调用。作用:看一段math.h中的宏定义:#if defined _USE_MATH_DEFINES && !defined _MATH_DEFINES_DEFINED #define _MATH_DEFINES_DEFINED // Definitions of useful mathemati

2020-07-01 16:28:14 917

原创 【视觉算法】SHOT特征描述子

回顾一下上一篇文章学习的物体识别流程,首先计算模型点云特征,并将特征保存;然后计算场景点云特征,并将特征保存;在此基础上,进行特征匹配;每一对特征点,进行霍夫投票,投票峰值对应的那些点对,即为正确的特征对应;至此,剔除了错误点对;再根据正确的对应关系解算旋转矩阵和平移向量,即完成了物体识别和姿态估计。现在我们开始学习SHOT特征描述子,简要说明一下,SHOT特征描述子在构建的局部参考系内(旋转和...

2020-05-03 13:53:37 6396 6

原创 【视觉算法】广义霍夫变换在三维物体识别中的改进和应用学习

前两篇文章,学习了经典霍夫变换和广义霍夫变换,我们对霍夫变换的原理和整个过程有了较为清楚的认知。这篇文章主要学习广义霍夫变换在三维物体识别中的改进和应用。首先思考一个问题,如果直接将广义霍夫变换应用在三维场景下的物体识别中会怎么样?先确定未知参数的个数,由基本的三维物体识别和姿态估计知识,六个自由度,包括三个方向的角度和位移,即6个未知参数;直接应用(这里,以特征点的法线方向替代梯度方向[1]...

2020-04-29 11:56:52 2169 8

原创 【视觉算法】广义霍夫变换(Generalized Hough Transform)

在上一篇文章中,我们学习了经典霍夫变换,用以识别图像中的可解析图形;而广义霍夫变换(Generalized Hough Transform)旨在解决不可解析的不规则图形的识别问题。以下,结合Generalized Hough Transform (GHT)(Ballard and Brown, section 4.3.4, Sonka et al., section 5.2.6)这篇文章学习。...

2020-04-27 00:09:21 6975 5

原创 【视觉算法】霍夫变换(Hough Transform)

在进入正题之前,首先思考一个问题,在下图中,我们如何从散乱的点中寻找到直线?有多少直线?哪些点属于哪些直线?如果是找圆形呢?霍夫变换(Hough Transform)能很好的解决这些问题,要理解霍夫变换,首先要知道霍夫空间,看下图:可以看到,霍夫空间实际上是参数空间,在上图的变换中,图像空间中的直线的斜率和截距是未知参数,由这两个未知参数构造的空间就是对应的霍夫空间。图像空间中的一条直...

2020-04-26 13:48:46 2501 2

原创 【LeetCode刷题记录】20. 有效的括号

题目描述:题解:一、递归每次检查相邻且成对出现的合法符号,有则删除该对,直到没有相邻且成对出现的为止。map<char, char> wordbook = { { ')', '(' }, { ']', '[' }, { '}', '{' }};bool isValid(string s) { if (s.empty())return true; if (s.si...

2020-04-02 13:29:00 159

原创 【LeetCode刷题记录】19. 删除链表的倒数第N个节点

题目描述:题解:问题的关键是如何确定倒数第n个节点的位置,先看代码:ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode *h = new ListNode(0); h->next = head; ListNode *p = h; ListNode *k = h; if (head->next == ...

2020-04-02 12:06:35 139

原创 【LeetCode刷题记录】18. 四数之和

题目描述:题解:一、排序+双指针思路和三数之和类似,不赘述。vector<vector<int>> fourSum(vector<int>& nums, int target) { if (nums.empty() || nums.size() < 4)return{}; sort(nums.begin(), nums.end());...

2020-04-02 11:45:01 109

原创 【LeetCode刷题记录】17. 电话号码的字母组合

题目描述:题解:一、自己写的平庸全排列思路简单,直接看代码。vector<string> letterCombinations(string digits) { if (digits.empty())return{}; vector<string> key_map{ "abc","def","ghi","jkl","mno","pqrs","tuv","wxy...

2020-04-02 11:28:34 206

原创 【LeetCode刷题记录】16. 最接近的三数之和

题目描述:题解:一、排序+双指针类似上一题,思路比较简单,直接看代码。int threeSumClosest(vector<int>& nums, int target) { sort(nums.begin(), nums.end()); int rst = nums[0] + nums[1] + nums[2]; for (int i = 0; i < ...

2020-04-01 13:33:46 122

原创 【LeetCode刷题记录】15. 三数之和

题目描述:题解:一、排序+双指针思路简单,直接看代码。vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> rst; sort(nums.begin(), nums.end()); if (nums.empty() || nums...

2020-04-01 13:23:07 88

原创 【LeetCode刷题记录】14. 最长公共前缀

题目描述:题解:思路比较简单。一、水平扫描string longestCommonPrefix(vector<string>& strs) { string rst{}; if (strs.empty())return rst; for (int i = 0; i < strs[0].size(); i++) { char c = strs[0][i]...

2020-04-01 13:08:04 100

原创 【LeetCode刷题记录】13. 罗马数字转整数

题目描述:题解:一、直接求解(时间复杂度O(n),空间复杂度O(1))int romanToInt(string s) { int rst = 0; for (int i = 0; i < s.size(); i++) { switch (s[i]) { case 'M':rst += 1000; break; case 'D':rst += 500; brea...

2020-04-01 11:43:14 110

原创 【LeetCode刷题记录】12. 整数转罗马数字

题目描述:题解:两种解法,思路都比较简单,第二种比较有意思。一、暴力法(时间复杂度O(1),空间复杂度O(1))string intToRoman(int num){ string result; vector<string> tmpVec1 = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" ...

2020-04-01 11:18:52 84

原创 【LeetCode刷题记录】11. 盛最多水的容器

题目描述:题解:一、暴力破解(时间复杂度:O(n2), 空间复杂度:O(1))BF方法的思路简单,两层循环,遍历所有可能性,找出其中最大的。不作赘述。二、双指针使用双指针,一个指头,一个指尾,面积=较短的高度*两者间距,短的一侧向中间移动,直至两指针重合。代码:int maxArea(vector<int>& height) { int res = 0; i...

2020-04-01 10:57:19 140

原创 【LeetCode刷题记录】10. 正则表达式匹配

题目描述:题解:一、回溯检查时,如果只考虑’.’,显然只需要同时在s和p中越过当前元素就可以了。对于’*’,要分两种情况考虑:1、表示0个前面那个元素,这时在p中越过它和它前面那个元素,s不变;2、表示1个前面那个元素(可以扩展到n个),这时在s中越过当前元素,p不变。引用官方解答的一句话:“当模式串中有星号时,我们需要检查匹配串 s 中的不同后缀,以判断它们是否能匹配模式串剩余的...

2020-03-12 19:51:19 266

原创 【LeetCode刷题记录】9. 回文数

题目描述:题解:思路比较简单,引用官方题解:bool isPalindrome(int x) { if (x < 0 || (x % 10 == 0 && x != 0)) return false; int reverted_num = 0; while (x > reverted_num) { reverted_num = reverted_num...

2020-03-10 12:44:15 82

原创 【LeetCode刷题记录】8. 字符串转换整数 (atoi)

题目描述:题解:思路比较简单,这样写代码比较简洁:int myAtoi(string str) { int len = int(str.size()); int rst = 0; int sign = 0; bool started = false; for (int i = 0; i < len; i++) { if (str[i] == ' ' &&amp...

2020-03-10 12:18:49 121

原创 【LeetCode刷题记录】7. 整数反转

题目描述:题解:思路简单,注意溢出就可以了(-2147483648‬, 2147483647)。int reverse(int x) { int rst = 0; while (x != 0) { int pop = x % 10; x /= 10; if (rst > INT32_MAX / 10 || (rst == INT32_MAX / 10 &&am...

2020-03-10 10:58:09 105

原创 【LeetCode刷题记录】6. Z 字形变换

题目描述:题解:

2020-03-10 10:48:42 90

原创 【LeetCode刷题记录】5. 最长回文子串

题目描述:题解:一、暴力破解(时间复杂度:O(n3),空间复杂度:O(1),超出时间限制(TLE))BF方法的思路比较简单,逐个检查所有的子字符串,看它是否是回文子串。二、中心扩展算法逐字符访问,以当前字符(奇数)或当前和下一字符(偶数)为中心,向两边扩展,检查是否为回文。共有n+n-1个中心。int expendaroundcenter(string s, int left, in...

2020-03-09 20:31:20 107

原创 【LeetCode刷题记录】4. 寻找两个有序数组的中位数

题目描述:一个最简单、最容易想到的方法是:将两个数组排序、存入同一个vector,计算中位数,如:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int n = nums1.size(); int m = nums2.size(); //vector&...

2020-03-07 19:32:20 83

原创 【LeetCode刷题记录】3. 无重复字符的最长子串

题目描述:题解:一、暴力破解(时间复杂度:O(n3),空间复杂度:O(min(n,m)),超出时间限制(TLE)) BF方法的思路比较简单,逐个检查所有的子字符串,看它是否不含有重复的字符。取不重复子字符串中长度最大的那个作为结果输出。二、双指针滑动窗口(时间复杂度:O(n2),空间复杂度:O(1))int lengthOfLongestSubstringSlide(string s)...

2020-03-05 20:22:05 184

原创 【LeetCode刷题记录】2. 两数相加

题目描述:单链表定义:struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};打印链表:正序:void printListNode(ListNode* ln) { ListNode* ln_temp = ln; while (ln_temp != NULL) {...

2020-03-05 13:27:19 136

原创 【LeetCode刷题记录】1. 两数之和

题目描述:题解:一、暴力破解vector<int> twoSumBF(vector<int>& nums, int target) { //brute force for (int i = 0; i < nums.size(); i++) { int complement = target - nums[i]; for (int j = 0; ...

2020-03-05 12:42:25 106

原创 c++贪吃蛇

空余时间写了贪吃蛇,基于microsoft windows console和c++标准库。Snake.h#pragma once// code by ciderpark// ciderpark@163.com#include <iostream>#include <string>#include <cstdlib>#include <win...

2019-09-01 09:32:44 190

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除