自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode 最长回文子串

2021-02-23 22:31:19 120

转载 单链表反转的递归和非递归方法

单链表反转有递归和非递归两种实现方法,首先定义链表结点://定义一个链表节点struct ListNode{ int value; ListNode *next;};一、递归方法先反转后面的链表,从最后面的两个结点开始反转,依次向前,将后一个链表结点指向前一个结点,注意每次反转后要将原链表中前一个结点的指针域置空,表示将原链表中前一个结点指向后一个结点的指向关系断开。二、非递归方法利用两个结点指针和一个中间结点指针temp(用来记录当前结点的下一个节点的..

2021-02-07 16:45:23 461

原创 Leetcode 203. 移除链表元素

https://leetcode-cn.com/leetbook/read/linked-list/f9izv/这个题目是一道简单题,但是我觉得还是蛮好的,因为题解采用的方法是引入哨兵节点。哨兵节点和哑节点其实是一回事,哨兵节点(sentinel)是一个哑元节点(dummy node),可以简化边界条件。是一个附加的链表节点,该节点作为第一个节点,它的值域中并不存储任何东西,只是为了操作的方便而引入的。如果一个链表有哨兵节点的话,那么线性表的第一个元素应该是链表的第二个节点。很多情况下,需要处...

2021-02-07 14:59:42 115

原创 Leetcode19 删除链表的倒数第N个节点

Leetcode 19.删除链表的倒数第 N 个结点https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/最近在刷Leetcode,这道题给的题解让人耳目一新。1.方法一首先求长度,自己写一个函数,删除倒数第N个节点,就是删除正数第L-N+1个节点,L为长度,注意链表长度从1开始计数。这个不难想到,题解的亮点在于引入了哑节点,什么是哑节点,为什么要引入哑节点?https://blog.csdn.net/x55x5

2021-02-06 16:55:58 99

原创 前途未定 反思篇

这多半年在准备考研,没有写过博客。最近压力很大,各方面,想梳理一下烦躁的情绪,发泄一下,唉,考研成绩快出来了,内心很忐忑,这一年很努力,但没有尽力,更没有竭尽全力。又选择了CS考研难度极其高的数一英一408,报的还是华五,考试总体来说,发挥的算一般,最主要的是408没考好,虽然今年大家都说408不难,但是我自己真的复习的有点偏,DS大题感觉接近全军覆没,图我学的很一般,往年也没考过代码题,就放松警惕,网络也考的一般,操作系统感觉和往年常规题型有差别,计组大家都说简单,但是我考的真的不好,因为计组这几年都比较

2021-02-03 11:45:00 288 4

原创 C++异常 智能指针类型转换

异常1.当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。2.异常是通过抛出对象而引发的,该对象的类型决定了应该激活哪个catch的处理代码。3.被选中的处理代码是调用链中与该对象类型匹配且离抛出异常最近的那一个。4.try catch会带与其未曾料到的栈溢出。5.C++异常处理机制是一个用来有效地处理运行错误的非常强大且灵活的工具,...

2020-02-24 19:32:57 424

转载 RSA算法原理(二)

转载:RSA算法原理(二)作者:阮一峰日期:2013年7月 4日上一次,我介绍了一些数论知识。有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。六、密钥生成的步骤我们通过一个例子,来理解RSA算法。假设爱丽丝要与鲍勃进行加密通信,她该怎么生成公钥和私钥呢?第一步,随机选择两个不相等的质数p和q。爱丽丝选择了61和53。(实际应用...

2020-02-21 18:29:02 459

转载 欧拉函数和欧拉定理

转载自:https://blog.csdn.net/hzj1054689699/article/details/80693756https://www.cnblogs.com/xiaoyezi-wink/p/10675357.html这里就以自己做好的PPT图片的形式给出了:欧拉函数在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。其...

2020-02-21 15:13:05 592

原创 C++ 多态

1.多态的概念多态:通俗的说就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。2.多态的定义及实现构成多态需要具备的两个条件:调用函数的对象必须是指针或者引用。 被调用的函数必须是虚函数,且完成了虚函数的重写。虚函数就是在类的成员函数的前面加virtual关键字什么是虚函数的重写?派生类...

2020-02-19 20:00:05 118

原创 C 学习笔记之 继承

1.继承的概念及定义1.1继承的概念继承:允许程序员在保持原有类特性的基础上进行扩展,产生的新的类称为派生类,继承是类设计层次的复用,呈现了面向对象设计的层次结构。#include<iostream>#include<cstdio>#include<algorithm>using namespace std;class pers...

2020-02-19 18:46:30 525

原创 C++模板学习

模板初阶泛型编程函数重载的几个不好的地方:1.代码的复用率低,新类型出现时,就需要增加对应的函数。例如交换函数的书写时,就能体现出复用率低。2.代码的可维护性比较低,一个出错可能让所有的重载均出错。泛型编程:编写与类型无关的通用代码,是代码复用的一种手段,模板是泛型编程的基础。模板又分为函数模板和类模板。函数模板概念:函数模板代表了一个函数家族,该函...

2020-02-17 15:12:41 141

原创 C/C++内存管理

C/C++内存分布注意一些变量的分布,const,static,register等都是需要注意的地方。C语言中动态内存管理方式malloc/realloc/calloc的区别?首先从函数参数上进行介绍,void * malloc(int n);void *calloc(int n,int size);void * realloc(void * p,int n);r...

2020-02-11 16:14:44 102

原创 C++学习笔记之类和对象

结构体在C和C++的不同1.在c++中,用结构体定义变量不需要加struct,而c中不行。2.在C++中,可以定义空结构体,大小为1,而C中不行。3.在C++中,可以在结构体声明中声明甚至实现函数,在C中只能放函数指针。4.在C++中,成员函数直接可以访问本结构的成员变量而无需传入,在C中,函数和结构并无直接关联。***成员函数不影响结构体的大小因为成员函数是放在公共区...

2020-01-15 13:04:15 117

原创 C++学习笔记(一)

python 1991年 20世纪最成功的脚本语言 入门简单 开发难度低Lua小巧的脚本语言JAVA 1995年诞生 C++学好学JAVA很容易 C++ 1982年基于C语言产生的,(本家尼博士)它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计C++98 C++标准第一个版本,以模板方式重...

2020-01-12 22:05:44 83

原创 Linux基础命令练习

1. 将之前所创建的目录和文件全部清理掉清理文件rm 加文件名,清理目录是rmdir 加目录名。但是rmdir清理的是空目录,若目录非空,则rm -r filenamerm -r filename删除目录及其下所有文件。2. 在家目录下创建 ~/workspace/cmd 目录以及 ~/workspace/tmp/test 目录(什么是家目录?)mkdir -p filename/...

2019-11-05 15:00:21 621

原创 贪心

顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到 的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多 问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即 使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。 从问题的某一个初始...

2019-11-04 18:16:00 192

原创 C 学习笔记之vector

将从以上这几个层面开展学习vector。vector使用及介绍 vector介绍 vector是表示可变大小数组的序列容器。 vector是一个可以动态改变的数组,大小会被容器自动处理。 vector使用动态分配数组存储他的元素,分配空间策略是:vector会分配一些额外的空间以适应可能的增长。 与其他动态序列容器相比,vector在访问元素的时候更加高效,在...

2019-10-22 16:39:55 339

原创 算法笔记学习之三种基本排序

基本排序:冒泡排序,选择排序,插入排序。高等排序:快速排序,归并排序,希尔排序,堆排序。这是我个人的理解,后三种排序是基于前三种排序的基础上进行完全完善的。冒泡排序时间复杂度:O(n^2) 空间复杂度:O(1)本质:交换.每次通过交换的方式把当前剩余元素的最大值移动到一端,而当剩余元素减少为0时,排序结束。举例:3 4 1 5 2 按照要求把它们从小到大的顺序...

2019-10-09 17:56:08 180

原创 C++学习笔记之string类

c语言中,字符串是以'\0'结尾的一些字符的集合。如果说需要用到C语言的一些字符串里面的函数,头文件是#include<cstring>。#include<string>是C++里面的string。将从以上这几个方面进行阐述说明。https://blog.csdn.net/u011000290/article/details/49020335大佬把...

2019-10-06 18:07:34 349

原创 String类的构造、拷贝构造、赋值运算符重载、以及析构函数

#include<iostream>#include<cstdio>#include<assert.h>#include<cstring>#include<algorithm>using namespace std;class String{public: String(const char* str=NULL);/...

2019-09-21 19:11:03 214

原创 1009 说反话 (20 分)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Her...

2019-09-21 12:58:28 246

原创 PAT 1019 General Palindromic Number (20 分)

A number that will be the same when it is written forwards or backwards is known as aPalindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are palindromic numbers...

2019-09-19 10:47:14 62

原创 进制转换

进制转换的代码我写了好多次了,但是一直感觉自己没有掌握进制转换的精髓。https://www.cnblogs.com/gaizai/p/4233780.html好多博客都写的很棒。我前段时间看了一段代码就是m进制转换为n进制,代码特别短,但是很强大。我忘了,也找不到了。一个p进制数转换为Q进制数分为两步:1.P进制数x转换为10进制数y;2.10进制数y转换为Q进制数...

2019-09-16 21:37:13 279

原创 算法笔记学习(一)

今日目标:第二章结束(回顾浏览)需要注意的点:iostream流和cstdio 不要混用,意思就是输入用cin,输出就用cout,不要scanf,cout混用,有时会出现问题,scanf,printf的效率会比cin,cout快。 变量类型需要记住,这是一个很重要的知识点P7页,float的精度大概为6到7位,double的精度为15到16位。 绝对值在10^9范围以内的整数都可以...

2019-09-06 11:22:58 193

原创 CF# 581(Div 2)B. Mislove Has Lost an Array

http://codeforces.com/contest/1204/problem/B B. Mislove Has Lost an Array Mislove had an arraya1a1,a2a2,⋯⋯,anano...

2019-08-22 15:12:18 198

原创 CF#581(Div2) A. BowWow and the Timetable

A. BowWow and the Timetablehttp://codeforces.com/contest/1204/problem/AIn the city of Saint Petersburg, a day lasts for21002100minutes. From the main station of Saint Petersburg, a train departs...

2019-08-21 23:01:56 306

原创 八皇后和汉诺塔问题

汉诺塔问题三个盘子的汉诺塔问题 需要7步。怎么移动大家都清楚。四个盘子的汉诺塔问题 需要15步怎么分析呢,把中间的看作目标柱子,把最大的移到右边,然后就是和三个盘子的是一样的分析了a4=a3+a3+1.其实我们分析汉诺塔问题可以看作第n个和前n-1个两部分,一共就三个步骤:把n-1个盘子移动到缓冲区。把第n个盘子移动到终点。然后把缓冲区的n-1个盘子...

2019-07-16 20:36:11 315

原创 Codeforces Round #573 (Div. 2) B. Tokitsukaze and Mahjong

B. Tokitsukaze and Mahjongtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputTokitsukaze is playing a game derivated from Japanese m...

2019-07-13 12:02:49 214

原创 栈和逆波兰表达式

中缀表达式1+2,1+3*2,1+(3*2*(1+3)),这些就是中缀表达式,就是我们平时经常见到的形式,先算加减再算乘除,有括号的先算括号里面的,没有括号按照优先级顺序进行计算。但是,计算机处理中缀表达式却并不方便,因为没有一种简单的数据结构可以方便从一个表达式中间抽出,一部分算完结果,再放进去,然后继续后面的计算(链表也许可以,但是,代价也是不菲)。若用链表进行计算,不断地更新值...

2019-07-12 12:34:10 339

原创 广搜总结(Kuangbin 搜索专题)

B - Dungeon MasterPOJ - 2251这道题就是广搜模板题,只是变换了一些条件,例如变成三维的。思路和广搜题目思路一样。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>...

2019-05-31 00:09:34 142

原创 计算几何——向量

计算几何第一篇——向量这次西安邀请赛计算几何签到题都没做出来,题目有错是一回事,但是最主要的是自己实力的问题。对昨天学习内容的一个总结。叉积:叉积就是向量积,表示p1,p2,和p1+p2所构成的平行四边形的有向面积。在平面内取一个定点O,叫极点,引一条射线Ox,叫做极轴,再选定一个长度单位和角度的正方向(通常取逆时针方向)。 对于平面内任何一点M,用ρ表示线段OM的长度(有时也用r表示...

2019-05-22 17:40:00 651

转载 G++和C++区别

转载:http://blog.csdn.net/wr_technology/article/details/53414447一、OJ提交题目中的语言选项里G++与C++的区别http://www.th7.cn/Program/cp/201405/199001.shtml首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已。那么他...

2019-05-22 15:56:42 176

原创 树状DP个人总结

树状dp就是在树上的动态规划,树状dp的特殊性:无环,dfs不会重复,具有明显严格的层数关系。大神的好文:https://blog.csdn.net/txl199106/article/details/45373507大神的好文:https://blog.csdn.net/txl199106/article/details/45372337什么时候用树状dp?判断题目描述的数据结构...

2019-05-17 20:08:29 360

原创 深搜总结

Kuangbin搜索总结A - 棋盘问题 POJ - 1321这道题没有用到剪枝,就是要考虑状态,题目要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,那么我们可以在dfs(int cur)cur代表当前行,所以直接只用考虑列,行数在增加列数做好标记。注意cnt,ans的区别。#include<iostream>#include<cstdio&...

2019-05-17 20:00:03 242

转载 数学建模四大模型总结

1 优化模型1.1 数学规划模型线性规划、整数线性规划、非线性规划、多目标规划、动态规划。1.2 微分方程组模型阻滞增长模型、SARS传播模型。1.3 图论与网络优化问题最短路径问题、网络最大流问题、最小费用最大流问题、最小生成树问题(MST)、旅行商问题(TSP)、图的着色问题。1.4 概率模型决策模型、随机存储模型、随机人口模型、报童问题、Markov链模型。...

2019-05-06 08:16:27 1375

原创 状压DP学习总结(一)

目的:减小内存消耗,利用状压dp,所有的状态都可以用一个32位甚至16位的整数,位运算能提高运算的速度。需要用到一些位运算:&(按位与):均1则1,有0则0。用途:清零,取指定位,保留一位。|:(按位或)均0则0,有1则1。^:(按位异或)相同为0,相反为1。~:取反操作。<<:左移相当于乘2.但是要注意有符号数和无符号数。>>:右移相当于除2.数据范围...

2019-05-02 11:42:58 1080

原创 Doing Homework HDU - 1074

Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignatius hands in the homework after th...

2019-04-30 12:30:26 307

原创 基础线性DP总结

动态规划是一种求解最优解的思想。通常情况下要分清楚动规和贪心,什么时候用贪心,什么时候用动规。1.数字三角形问题动规方程:dp[i][j]=a[i][j]+max{dp[i+1][j],dp[i+1][j+1]}。每次从i,j走有两种选择下dp[i+1][j]和 右下dp[i+1][j+1].全局最优解包含局部最优解。动态规划的核心是状态转移方程。The Triangle P...

2019-04-17 19:55:28 335

原创 POJ 1164The castle

1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # | # # # # # #---#####---#####---#####---#...

2019-04-15 10:55:35 113

原创 非常可乐 HDU 1495

M - 非常可乐HDU - 1495大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以相互倒可乐 ...

2019-04-11 19:50:39 85

空空如也

空空如也

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

TA关注的人

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