自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博客

萌新的坎坷修仙路

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

原创 【学习随笔】python编程从入门到实践 笔记整理汇总

备注:个人学习笔记,仅用于个人学习,侵权勿删1.python安装(略)2.变量和简单数据类型2.2变量message="hello python world !"print(message)#不用;不用声明变量类型2.2.1 变量命名规则:(1)只能包含字母、下划线、数字。开头必须是字母或者下划线(2)变量名不能有空格(3)python关键字不能做函数名或变量名(4)慎用小写字母l和o容易看成数字1和0,变量名应简短明确2.2.2使用变量名时避免命名错..

2020-11-03 11:48:57 1163

原创 【学习随笔】Opencv 知识汇总

图像处理 :(大纲)三种线性滤波 :方框滤波,均值滤波,高斯滤波两种非线性滤波:中值滤波,双边滤波七种图像处理形态学:腐蚀、膨胀、开运算、闭运算、形态学梯度、顶帽、黑帽漫水填充图像缩放图像金字塔阀值化滤波中概念 :平滑处理:也称模糊处理,是一种简单且使用频率很高的图像处理方法。(在涉及到降低图像分辨率时,平滑处理是好方法)图像滤波:指在尽量保留图像细节特征的条件下对目标图像的噪声进行压制。 (消除图像中的噪声成分叫做图像的...

2020-09-30 22:36:54 471

原创 【学习随笔】C++语法类问题汇总

vector的二维数组的定义:vector < vector <int> > dp ( n ,vector < int > (n)); //dp[n][n]针对于C++字符串中的两种截取用法:substr:返回一个从指定位置开始的指定长度的子字符串 substr(start,[length]);//如果length为0或负数,将返回一个空字符串。...

2020-09-30 15:22:05 539

原创 Leetcode 35 vector<int>::iterator 的注意事项

思路:先用STL下界函数查找,找到返回,找不到插入,插入后再对后面排序(1)对于vector每次的插入、删除均会使迭代器失效(2) 对于迭代的重载可以用下标 i 和 begin() 完成 ,例如 想取nums[i]的迭代器,iterator=nums.begin()+i;int searchInsert(vector<int>& nums, int target) { //lower_bound vector<int>::iterator begin =

2020-10-17 16:17:20 215

原创 Leetcode 34 二分或者lower_bound / upper_bound用法

思路1:线性检索思路2:利用上下界函数,写法简洁较快思路3:在时间复杂度内的二分法思路1:class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { if(!nums.size())return { -1,-1 }; vector<int>::iterator p = find(nums.begin(),

2020-10-17 14:33:14 325

原创 Leetcode 14 string::find / substr

思想:利用C++ string::find 函数的特性,暴力匹配重要特性:substr(start , [length ]) ;如果 length 为 0 或负数,将返回一个空字符串 string::find(str); //匹配返回首下标,不匹配返回string::nopos=-1# include<iostream># include<vector># include<string># include<al...

2020-10-14 19:01:42 136

原创 Leetcode 31 next_permutation 使用

思路:全排列,调用STL的next_permutation//备注:认为太简单太随意的可以去看下源代码class Solution {public: void nextPermutation(vector<int>& nums) { next_permutation(nums.begin(), nums.end()); }};//STL 中实现的源代码template <class _BidirectionalIter&gt.

2020-10-11 13:41:10 101

原创 Leetcode 29 两数相除 学习感悟

思路1:暴力减法,每次加1思路2:每次除数自身相加,res自身相加,以倍数增加//BF思路1:class Solution {public: int divide(int dividend, int divisor) {//a/b 10/3 int res = 0; if (dividend == 0)return 0;//a为0 if (divisor == 1)return dividend;//b为1 if (divisor == -1

2020-10-09 15:43:07 104

原创 【学习随笔】关于计算中 int 正负数溢出判定

通常在计算过程中会遇到int 32位是否溢出判定: int正数的范围是2147483647,负数的范围为-2147483648计算过程中的res是否溢出有以下两种可能性:正数有如下几种情况:res < INT_MAX/10,这种情况无论t为多大,都不会溢出;res > INT_MAX/10,这种情况无论t为多小,一定会溢出;res == INT_MAX/10,其中INT_MAX=2147483647,所以当t>7时,会发生溢出;负数有如...

2020-10-08 17:05:01 989

原创 Leetcode 27 erase 用法

思路:直接调用STL函数,当然速度并不会太快至于这两个函数的用法,这个里面有图解链接:https://blog.csdn.net/QingCoffe/article/details/108885767# include<iostream># include<vector># include<string># include<algorithm># include<math.h># include<climits>

2020-10-08 14:08:24 173

原创 Leetcode 26 unique 使用

思路:直接调用STL库函数 (简单但是肯定不会快)# include<iostream># include<vector># include<string># include<algorithm># include<math.h># include<climits># include<stack># include<queue>using namespace std;int remov.

2020-10-08 13:57:52 254

原创 Leetcode 25 k个一组翻转链表 递归

思路:日常递归每k个完成操作,递归一次# include<iostream># include<vector># include<string># include<algorithm># include<math.h># include<climits># include<stack># include<queue>using namespace std;struct ListNod

2020-10-08 13:42:34 92

原创 Leetcode 24 两两交换链表中的节点 学习感悟

思路:递归思想2->1->4->3->5 链表,head=21互换,变12的返回值,其中2的next等于调用下一层435的返回值,43互换变34返回值节点3给2的next,4的next调用递归5的返回值# include<iostream># include<vector># include<string># include<algorithm># include<math.h># include<

2020-10-08 13:19:11 98

原创 Leetcode 23 合并k个升序链表 学习感悟

思路:纯暴力,依次遍历依次比较偷取,不new新节点,直接拿过来# include<iostream># include<vector># include<string># include<algorithm># include<math.h># include<climits># include<stack>using namespace std;struct ListNode { int val;

2020-10-07 14:10:11 69

原创 Leetcode 22 括号匹配问题-用balance判断

思路:递归生成所有可能在,为了节约时间,从中加入balance,当balance为负数一定不合法,就不递归了当缺少 ( 就加入 ( ,多了就不递归了当缺少 )就加入 ),多了就不递归了当且仅当 ( 和 )的个数等于n ,且balance# include<iostream># include<vector># include<string># include<algorithm># include<math.h&gt...

2020-10-07 14:08:52 119

原创 Leetcode 21 合并两个有序链表 学习感悟

思路:迭代一个个往里面加# include<iostream># include<vector># include<string># include<algorithm># include<math.h># include<climits># include<stack>using namespace std;struct ListNode { int val; ListNode* next;

2020-10-06 21:59:35 914

原创 Leetcode 20 有效括号 学习感悟

思路:用栈来做括号匹配,左括号入栈,右括号跟栈内匹配,匹配继续 ,不匹配则return false,直至所有符号循环结束,若结束后栈空则匹配,否则不匹配。# include<iostream># include<vector># include<string># include<algorithm># include<math.h># include<climits># include<stack>u

2020-10-06 21:00:12 93

原创 Leetcode 19 删除链表的倒数第N个节点 学习感悟

思想:用内存换时间为了不二次遍历,在第一次遍历的时候用指针数组 vector<ListNode*>p; 将每一个节点指针都保存下来删除节点的下标正好等于 int size = p.size()-n; //n为删除的倒数第n个节点# include<iostream># include<vector># include<string># include<algorithm># include<math.h&g...

2020-10-06 20:45:03 81

原创 Leetcode 18 四数之和 学习感悟

思路:设置 i j k n 四个游标,思想如同三数之和# include<iostream># include<vector># include<string># include<algorithm># include<math.h># include<climits>using namespace std;vector<vector<int>> fourSum(vector<int

2020-10-06 20:24:07 75

原创 Leetcode 17 电话号码的字母组合 学习感悟

思路:首先提前存好要用的nums参考表,为了让字符串中的数字与参考表下标一致,01可以存无用信息整个核心思想就是递归,如" 234 "数字 [ int ip = str.at(0) - '0'; 获取vector中的下标]第一层"234"拿到2的数字,2对应abc,因此有nums[ip].size()次循环 ,首循环pushstr="a"【拿str首字母,递归下去str少首字母】 第二层"34"拿到3的数字,3的对应def ,因此有nums[ip].size()次循环,...

2020-10-06 19:57:38 86

原创 Leetcode 16 最接近三数之和 学习感悟

思路:首先整体思路还是之前的三数和游标的思想当 i+j+k > 0 时候说明k取的数字大了,k--当 i+j+k <0 时候说明j取的数字小了, j++只不过在每次计算过程加上count值和给定的target比较,每次比较res只保留最小的count的计算结果。最终将res返回# include<iostream># include<vector># include<string># include<algorithm...

2020-10-06 18:55:54 62

原创 Leetcode 15 三数之和 学习感悟

思路:首先针对整个数组进行排序,使数组处于有序状态class Solution {public:vector<vector<int>> threeSum(vector<int>& nums) { int n = nums.size(); sort(nums.begin(), nums.end()); vector<vector<int>> ans; // 枚举 a for (int first = 0; fir.

2020-10-06 13:42:32 95

原创 Leetcode 13 罗马数字转整数 学习感悟

思路:首先提前存好每个字符和对应的数字如:MCMXCIV先比较第一个字符M,找到对应的vector位置和对应的数字,此时看第二给数字MC是否和vector中的串匹配若不比配,先记下M=1000,若匹配则记录对应值,遇到C找到对应100,CM匹配900,则记录900,XC匹配90,IV匹配4总计:1994class Solution {public:void priVector(vector<pair<string, int>>& s) { s.pu

2020-10-06 13:39:09 83

原创 Leetcode 12 整数转罗马数字 学习感悟

思路:提前用vector把一对pair存好(从小到大的顺序排列好),给出的数字跟vector中的数字比较,如98,遇到第一个比他大的数字90,总数减去它,剩下8,并且输出90对应的char类型XC,剩下8继续上述操作,直至为0,8大于5,减去5为3,输出V,3大于1故输出III。综合输出 XCVIIIclass Solution {public:void priVector(vector<pair<string, int>>& s) { s.push_bac.

2020-10-06 13:33:43 78

原创 Leetcode 11 盛水最多的容器 学习感悟

class Solution {public: int maxArea(vector<int>& height) { int i = 0, j = height.size() - 1; int res = 0; while (i < j) { res = max((j - i) * min(height[i], height[j]), res); height[i] < height[j] ? i++ : j--; } r...

2020-10-06 13:28:42 54

原创 【学习随笔】Opencv 的疑问集

void on_TrackbarNumChange(int, void*);//回调函数void on_ElementSizeChange(int, void*);//回调函数 //创建轨迹条 createTrackbar("腐蚀/膨胀", "【效果图】", &g_nTrackbarNumer, 1, on_TrackbarNumChange); createTrackbar("内核尺寸", "【效果图】", &g_nStructElementSize, ...

2020-10-05 11:33:38 153

原创 poj 2546 关于两圆面积求解

转自:https://blog.csdn.net/aaakkk_1996/article/details/81746858两圆相交分如下集中情况:相离+外切 ,相交,包含+内切相交分两种,锐角和钝角相交,二者求解公式相同

2020-10-02 16:46:22 107

原创 Leetcode 2 两数相加 学习感悟

思路:首先分4种情况讨论:p1 ,p2 哨兵都存在 ,正常相加求和取余,分离个位和十位。个位存入新节点,十位给carry , p1++,p2++p1存在,p2不存在,将carry带上和p2数字正常相加求和取余,分离个位和十位 ,个位存入新节点,十位给carry , p1++p2存在,p1不存在,将carry带上和p1数字正常相加求和取余,分离个位和十位,个位存入新节点,十位给carry , p2++p1,p2,都不存在,carry存在,将carry存入新节点置0,结束整个工作....

2020-10-02 14:55:31 89

原创 Leetcode 10 正则表达式 模拟穷举方法求解

首先吐槽下,太恶心 了......一开始以为很简单,后来发现细节太多了......一直修修改改限制条件花了6个小时思路: 首先对于两个序列都要加上游标 sp , pp 从起点0开始如果二者相等不断下行,sp++,pp++ 【直至不相等或者越界时出来 】未越界只是不等的时候,首先要区分下面3种不等的情形 (1) s中字母与【'. '】不等,直接sp++,pp++ (2) s中字母与【' * '】不等 。(此时要考虑一下3种情况) ...

2020-09-30 20:25:14 249

原创 Leetcode 8 字符串转换整数 学习感悟

思路:大体就是从串头开始读取每个数据,去除以下几种开头非法情况:(1)若开头纯连续性空白符' '需要吃掉所有的空白符再开始判断(2)首字符必须是 + - 或者数字,若不是返回0(3)非数字情形皆返回已读的res(res初始化为0)举例如: 读取数字过程中遇到如31.1415925的情况,读取到'. '时,应该将读取结果31返回。 读取数字过程中遇到非数字的其他符号,如 +31ad234 当读取到' a '时,应该将结果31返回。 读取数字过程中...

2020-09-29 11:43:24 71

原创 Leetcode 7 正数反转 学习感悟

转自:https://blog.csdn.net/qq_40941722/article/details/107942259思路反转数字是个很简单的问题,只需不断取模累乘即可,int正数的范围是2147483647,负数的范围为-2147483648 当把这个数反转时,大于2147483647,则 会发生溢出,所以这道题的关键在于判断是否溢出。正数有如下几种情况:res < INT_MAX/10,这种情况无论t为多大,都不会溢出;res > INT_MAX/10,这种情况无

2020-09-28 22:46:39 75

原创 Leetcode 5 最长回文字串 学习感悟

首先第一点需要明确动态规划的状态转移方程:dp[i][j] 含义为 数组中下标 i 到 下标 j 是否为回文串,若为回文串dp[i][j]=1 ,若不为回文串dp[i][j]=0(1)dp[i][i]=1; //边界1当处于单字母时候 ,本身必为回文串(2)dp[i][i+1]=1 ( s[i]==s[i+1]) //边界2当处于双字母时候,左右相等则为回文字串 (3) dp[i][j]=1 (s[i]==s[j]&&dp[i+1][j-1]) //正常的区域...

2020-09-27 22:36:30 88

原创 【Leetcode】3 无重复字符的最长字串 学习感悟

利用set中自带的count来判断是否字串中含有重复元素首先从头到尾开始遍历数组,每当遇到一个字母利用count判断是否在字串中含有字母,若没有此字母,将字母入set若字串中发现与此字母重复,查询当前字串长度是否大于sum(历史最长字串)若大于则更新字串长度。若小于则不更新,此时应从字串头开始删除,直至重复字母处,删除重复字母后并将当前字母入队set。继续由主串 i 处往后遍历,看是否与当前字串重复。首先小技巧:由于 left是从0开始的,不删除时left值不会变化,当出set后lef.

2020-09-27 22:23:26 110

原创 【Leetcode】1两数之和 学习感悟

class Solution {public:vector twoSum(vector& nums, int target) {unordered_map<int, int> hash;for(int i = 0; i < nums.size(); i++){if(hash.count(target - nums[i]))return {hash[target - nums[i]], i};hash[nums[i]] = i;}return {-1, -1};}

2020-09-23 19:46:11 110

原创 【 OJ 】 HDOJ1065 求土地被淹的时间[ 56 ]

emmm.....(:微笑AC代码:# include&lt;iostream&gt;# include&lt;math.h&gt;#define PI 3.1415926#define s 100 // 半圆50 圆100using namespace std;int main(void) { //圆面积公式 πR^2 R=sqrt(x*x+y*y) 每年圆面积增...

2018-12-31 15:05:21 149

原创 【 OJ 】 HDOJ1064 求银行卡平均值 [ 55 ]

求平均值,注意小数点即可  (:大滑稽 感觉我也就只能做这些题了AC代码:# include&lt;iostream&gt;#include &lt;iomanip&gt;using namespace std;int main(void) { double sum=0, temp; for (int i = 0; i &lt; 12; i++) { cin &gt;&gt...

2018-12-31 14:44:25 202

原创 【 OJ 】 HDOJ1061 快速幂求余问题 [ 54 ]

由于之前不会反复平方法,所以这一题没写,最近学完快速幂就做了这题,这题其实就是快速幂求余如果不会快速幂可以看我的这篇文章 https://blog.csdn.net/QingCoffe/article/details/85408731 (:逃 有我从不会到会的感悟AC代码:# include&lt;iostream&gt;#include &lt;algorithm&gt;usi...

2018-12-31 14:08:34 174

原创 【学习随笔】求快速幂( 反复平方法 )问题

学习参考自:https://www.cnblogs.com/wendelhuang/p/3414738.html                     https://blog.csdn.net/u011590573/article/details/81457797                     https://blog.csdn.net/wzb56_earl/article/...

2018-12-30 22:08:53 1269

原创 【 OJ 】 HDOJ1062 文本翻转 [ 53 ]

开始我真的单纯的去文本翻转了....然后没有意外的TLE后面发现.....直接倒序输出即可....Presentation Error 代码:(:逃 懒得找了格式问题#include&lt;iostream&gt;#include&lt;string&gt;#pragma warning(disable:4996)using namespace std;int main(vo...

2018-12-29 18:44:07 209

原创 【 OJ 】 HDOJ1060 求高次幂的最左边的数 [ 52 ]

转自:http://blog.sina.com.cn/s/blog_9e1ead8b01018ami.html这个题目得用到一些数学方法开始以为是考察大数,用了大数写出来发现不行超时log10N^N = N*log10N = M = a.b(a是整数部分,0.b是小数部分)所以10^M = 10^a.b = N^N(即N^N为a位数)10^b向下取整即为首位数举个例子:3^...

2018-12-25 20:39:19 159

空空如也

空空如也

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

TA关注的人

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