自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 leetcode674. 最长连续递增序列

【代码】leetcode674. 最长连续递增序列。

2024-03-27 21:42:38 85 1

原创 405. 数字转换为十六进制数

leetcode

2024-03-27 19:55:01 374

原创 Jsoup使用感悟

主要是修改main函数里的内容 其他部分没做更改main函数内容更改如下:public static void main(String[] args) { String url ="http://blog.csdn.net/zzq900503"; initHttpClient(); String content =crawlPageContent(httpClient,url);// System.out.println(content); Document doc = Js.

2021-05-05 17:03:12 171

原创 PAT 甲级 求二叉树最深的根

#include <iostream>#include <cstring>#include <algorithm>#include <vector>using namespace std;const int N = 10010, M = N * 2;int n;int h[N], e[M], ne[M], idx; //数组模拟邻接表int p[N];//并查集用来表示父节点int find(int x){ if(p[x.

2021-03-23 17:26:41 148

原创 PAT甲级 1020 树的遍历

针对该题主要就是考了对于中序遍历等三种遍历的熟悉程度,排序出来的分布规律,从上述图就可以看出一层的左子树和右子树的分布特点以及规律。#include <iostream>#include <cstring>#include <algorithm>#include <unordered_map>using namespace std;const int N = 40;int n;int posterder[N], inorder[N]...

2021-03-22 20:35:03 143

原创 PAT 数叶子节点 (1004)

PAT 数叶子节点 (1004)#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 110;int n, m;int h[N], e[N], ne[N], idx;//该地方利用了数组模拟邻接表的原理来构造树,可以多查找相关的表示方法,网上有很多。int cnt[N], max_depth;void add(int a

2021-03-20 15:17:37 120

原创 PAT 最佳排名

最佳排名#include <iostream>#include <algorithm>#include <unordered_map>#include <vector>#include <cmath>using namespace std;unordered_map<string, vector<int>> grades;//明白hashmap的用法表示映射的相对关系,一个id//映射到那个同学的三科成

2021-03-18 17:01:01 104

原创 双端队列之单调队列——基本数据结构

看到题目我们可以从题目中获取部分关键信息,首先它时要求给定的区域时最小的,其次又是区间最优,通过最优我们可以想到单调性,切记:我们这里的单调条件就是:名画种类递增!废话不多说,贴上代码:#include <iostream>#include <deque>using namespace std;const int N = 1e6+100;co...

2019-04-12 17:15:15 550

原创 单调栈——发射站

从题目来分析,首先该题目有两个特别的性质,两边最近:多熟悉几次栈同学们就可以有着很明显的感觉,就是这道题要用到简单的数据结构的知识的知识第二个就是比他高,尝试带入单调性,所以显然,这道题考的就是单调栈的知识运用到单调栈那么这道题就变得清晰了,分为两种情况:1、如果下一座塔比当前栈顶的塔的高度低,那么当前栈顶就要吸收来的塔的能量2、如果下一座塔比当前栈顶的塔的高度高,那么就破坏...

2019-04-09 14:55:48 354

原创 算法进阶指南,火车进出栈问题

这是算法进阶指南上面的题目,然后这道题需要用到卡特兰数,具体什么是卡特兰数下面是百度得来的:出栈次序一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列? [5-6]常规分析首先,我们设f(n)=序列个数为n的出栈序列种数。(我们假定,最后出栈的元素为k,显然,k取不同值时的情况是相互独立的,也就是求出每种k最后出栈的情况数后可用加法原则,由于k最后出栈,因此,在...

2019-04-07 15:44:03 1031

原创 IncDec序列——差分序列的运用

只要有这种对一定区域进行统一加减的题目,首先考虑到差分。这一道题的思路就比较简单了,首先如果你想确定l和r的区间,但是你发现,这个区间是不确定的,但是对一个差分序列在[l,r]的区间进行统一加减就代表了在差分数列b[l+1]++,b[r]--这个操作就可以在原先的某个区域进行加减同一个数的操作下面是我的代码具体看代码再理解。#include&lt;iostream&gt;#in...

2019-03-05 20:24:54 332

原创 二维前缀和——激光炸弹 算法进阶指南

这个题让求在一个二维的图表内,计算边长为R的正方形的总价值这个题就是反复对这个思路的运用 首先将每一点的与(0,0)所围成的面积的权重求出来g[i][j]+=g[i-1][j]+g[i][j-1]-g[i-1][j-1]然后下一步就是挨个计算面积为R的平方的处在该区域的各个地方的权值。int res=0;res=max(res,g[i-R][j]+g[i][j-R]-...

2019-03-04 18:57:26 288

原创 奇怪的汉诺塔——算法进阶指南

 在我们平常的时候做题,一般见到的三个柱子的汉诺塔比较多,这个题是四个柱子,但是我们也就是多做一步而已。首先我们要记录出三个柱子移动时候的情况,以便后续会用到。所以完成这个动作的代码是用到了递推的思想:代码如下:for(int i =1 ; i &lt;= 12; i ++) d[i] = d[i-1]*2 + 1;也可以用2^n-1利用位运算的写法,如下: ...

2019-02-22 17:35:31 579

原创 新手入门——递归实现指数型枚举结合位运算

题目是这样的,下面就是我的代码,部分关键地方有代码注释,此博客主要用于我后期的复习来用,所以我会努力让自己理解明白  #include&lt;iostream&gt;using namespace std;int n;void dfs(int u,int state){ if(u == n) { for(int i=0;i&lt;n;i...

2019-01-24 15:43:36 457

原创 报时助手——蓝桥杯基础练习

我之所以写这个博客,因为关于字符串存储的问题题目的描述是这样的这道题的思路还是比较简单的,把这些情况全部定义成一个数组,来保存字符串,下面是我的代码:#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;string&gt;#include&lt;cstdio&gt;using namespace std;...

2018-11-27 20:35:38 238

原创 汇编小程序实例详细解释——IBM汇编

由于快要期末考试了,我也准备开始本学期的专业课汇编语言的学习了hh(原谅我菜 orz)汇编很强,让我知道了计算机的cpu在进行工作时都是用加法来完成的所以聪明的计算机工程师们将世间万物的计算通过数学方法来转换成加法运算,所以汇编语言让我了解了些许底层的知识,同时我在网上搜索题目时,发现对于汇编详细解释的例子太过于少了,导致比较烧脑,所以我在弄明白之后就想着写一篇关于汇编简单计算的小例子来展...

2018-11-27 16:58:37 4799 1

原创 Leetcode_大数乘法—43. Multiply Strings

题目意思就是将两个数字构成的字符串相乘,然后输出,这个题说白了就是一个模拟题,来模拟人们在竖乘的过程中的方法。下面是我的代码:class Solution {public: string multiply(string num1, string num2) { vector&lt;int&gt; product(num1.size()+num2.size()...

2018-11-24 21:42:55 204

原创 水题—poj1004计算12个数字的平均数

在这个题目中我之所以来做总结是因为这其中对于输入和输出格式很严格,其中用到了几个函数首先展示一下我的代码:#include&lt;iostream&gt;#include&lt;iomanip&gt;using namespace std;int main(){ double temp; double sum=0.0; for(int i=0;i&lt...

2018-11-15 19:38:51 325

原创 基本数据结构第一篇——位运算

在所有现代cpu中都是以二进制方式表示数据,所以使用位掩码来计算的优点1、更快的执行速度、2、更简洁的代码、3、更少的占用内存量4、用数组代替关联数组首先是按位与按位与(&amp;)对两个数进行操作,然后返回一个新的数,这个数的每个位都需要两个输入数的同一位都为1时才为1,如上图:(A &amp; B) 结果为 12, 二进制为 0000 1100然后是按位...

2018-11-10 10:30:11 222

原创 784. Letter Case Permutation_dfs_搜索

此题题意的意思是,给定一个大小写和数字混合的字符串,输出的字符串必须满足字符串中大写变成小写,小写变成大写,首先定义一个全局变量来存储答案。因为每一个字符所在的位置输出不变,所以不用循环来遍历只需要递归搜索(u+1)来实现对于下一个字符的判断跟改变。我的代码如下:class Solution {public: vector&lt;string&gt; ans; ve...

2018-11-05 19:50:04 170

原创 Leetcode_394_ Decode String_dfs搜索_我的算法之路_解密字符串

在这个题目中,在给定3[a]2[bc]这种形式的字符串,我们需要来解密这个字符串,即用递归的思想来做下面是我的代码class Solution {public: string decodeString(string s) { string res; for(int i=0;i&lt;s.size();)//首先对字符串的每一个字符进行枚举 ...

2018-11-05 12:33:04 224

原创 我的算法之路之c++做题用到的实用函数

substr()函数的用法:substr有2种用法:假设:string s = "0123456789";string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789"string sub2 = s.substr(5, 3); //从下标为5开始截取长度为3位:sub2 = "567"   isdigi...

2018-11-04 20:12:11 265

原创 Leetcode_dfs_93. Restore IP Addresses_IP地址问题

此题所想表明的意思是,在题目给定的一串以数字组成的字符串,让你分割成IP地址,IP地址每一位数字必定小于256大于0,如果为零,单独一位给零。所以我们这个题用枚举的思想来做即首先定义一个全局变量,vector&lt;string&gt; ans,然后定义一个u来表示目前在string字符串的哪个位置然后定义一个K来表示已经生成了第几个数字。下面是我的代码class Solution ...

2018-11-04 16:05:21 236

原创 LeetCode—77. Combinations_递归暴力搜索_dfs_深度优先

题目是这样的:首先说明这是一个经典的递归穷举搜索问题——dfs(深度优先搜索)题目给定N在从1...........n中存在K个数组能够排列,就是从n中选择k个数字进行排列。首先老套路定义一个全局变量来接受所得的答案,然后在函数中定义一个path(所有的路径方案),然后就是从第一个数字开始进行递归函数。下面是我的代码class Solution { v...

2018-10-31 17:22:39 298

原创 Leetcode_dfs_递归问题_暴力搜索问题

 在这个题目中,题目的意思是将每一个字符串中的英文字母转化为相反的大小写然后再输出,首先观察到的是将字符串本身输出了,所以在搜索前先将字符串 本身搜索一遍class Solution {public: vector&lt;string&gt; ans; vector&lt;string&gt; letterCasePermutation...

2018-10-31 15:56:36 245

原创 leetcode 110刷题笔记——dfs——平衡二叉树判断问题

 在这道题中,我整整是做了一天的时间来完成它,首先我先了解了什么事平衡二叉树,复习了一遍二叉树的相关知识,也算是巩固吧,这道题中我用了整整两边递归,一个递归是求树的高度,一个是判断树是否为平衡二叉树,在这个题中为了更好的了解递归,可以把递归看做成一个黑盒子,不必细了解其内部的调用,当然如果好奇可以跟我一样,把调用的过程一步一步写出来,这样理解的会更加透彻。下面是我的代码 ...

2018-10-18 20:34:50 244 1

转载 转:内联函数

1.  内联函数在C++中我们通常定义以下函数来求两个整数的最大值:复制代码 代码如下:int max(int a, int b){ return a &gt; b ? a : b;}为这么一个小的操作定义一个函数的好处有:① 阅读和理解函数 max 的调用,要比读一条等价的条件表达式并解释它的含义要容易得多② 如果需要做任何修改,修改函数要比找出并修改每一处等价表...

2018-10-11 20:41:26 166

原创 Leetcode刷题笔记——24,两两交换链表中的的节点(链表专题)关于链表的操作

由于最近在学c++,在看c++primer,所以leetcode做的题也不是很多了,这个题是很长时间做的,一直想写一下博客但是一直没来得及,现在我说一下我做这道题的思路:首先我用的是左右指针来操作链表的,所以必须定义两个指针即左指针和右指针,因此想定义一个左指针和右指针得保证你所定义的指针所指向的区域不能为空。struct ListNode* swapPairs(struct...

2018-10-03 11:50:45 209

原创 用vector对象代替数组——使用数组初始化vector对象,vector的拷贝方式说明。

在看到c++primer的第三章,3.5.2节练习时,碰到了一个问题如下:将刚刚创建的数组拷贝给另一个数组。利用vector 重新写此程序完成类似的功能。然后我就在网上寻找答案,同时也学习了很多拷贝的方法 一、初始化构造时拷贝vector&lt;int&gt; tem(list);这种拷贝相当于复制了list的内部数据,内容没有发生改变。二、assignvec...

2018-10-02 19:20:50 1406

原创 while(cin>>word)在什么时候结束此循环的问题

在c++编程中我们难免会遇到这种问题就是,当 使用while(cin&gt;&gt;word)这种循环时,编译运行往往会出现循环不能终止的状况,所以我们有了不知道如何结束这种循环的疑惑。在 Unix 系统中的实际的现象为:* 当输入为“字符串,回车,Ctrl+D”的时候,跳出循环;* 当输入为“字符串,Ctrl+D,回车”的时候,不会跳出循环;* 当输入为“字符串,Ctrl+...

2018-09-27 19:57:55 8066

原创 undefined reference to 与gcc编译器细节的关系

在用c语言写项目的时候,有三个文件,一个头文件两个源文件分文件1文件2,在编译的时候,出现了如下的错误经过检查,在头文件中的函数声名没有错误,在源文件1中的函数定义也没有错误,在源文件2中的函数调用也没有出现错误,从此开始在网上查阅各种资料,都没有得到满意的答复,然后问了一遍大佬,给我的答复让我豁然开朗,一张图代表答案如下  但是我还是不知道具体的原理,但是知道原因,是...

2018-09-21 12:04:43 330

原创 函数指针(指向函数的指针)和指针函数的区别

函数指针和指针函数的区别:一、【函数指针】在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1、函数指针定义函数类型(*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必...

2018-09-12 21:09:35 1006

原创 void的作用和不确定类型指针的总结。

C语言中的void  和 void * 总结1、void的作用  c语言中,void为“不确定类型”,不可以用void来声明变量。如:void a = 10;如果出现这样语句编译器会报错:variable or field ‘a’ declared void。  在C语言中void 常常用于:对函数返回类型的限定和对函数参数限定    (1)对函数返回类型的限定:当函数不需要返回类...

2018-09-12 14:07:59 1469

原创 const用法——尽量使用const

C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。1.const 修饰成员变量  1 #include&lt;iostream&gt; 2 using namespace std; 3 int main(){ 4 int a1=3...

2018-09-12 09:33:38 342

原创 leetcode刷题笔记--83. 删除排序链表中的重复元素遇到的问题

如果出现Line 15: member access within null pointer of type 'struct ListNode'这样的原因,是因为系统编译器不确定头结点和头结点的下一个节点是否为NULL,所以要加一个while(p!=NULL&amp;&amp;p-&gt;next!=NULL)的语句判断一下。当【1,1,1】这样的例子运用时struct ListNod...

2018-09-07 10:28:06 236

原创 C语言——整数转化成罗马数字

计蒜客——整数转化为罗马数字的一点体会:首先想到的思路是单独一个一个的把输入的数字拆分开来,每一位对应的数字转化成罗马数字,建立{由于题目限制}(1-3999)四个数组分别代表unit、ten、hundred、thousands四个数组分别内部表示1-9每个数字, char* String_thousand[3]={"M","MM","MMM"}; char* ...

2018-08-23 09:25:27 3733

空空如也

空空如也

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

TA关注的人

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