自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小二笙的博客

一剑,一人,足矣

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

原创 【Leetcode】44. 通配符匹配 【动态规划】

给定一个字符串 (s)(s)(s) 和一个字符模式 (p)(p)(p) ,实现一个支持 ′?′'?'′?′ 和 ′∗′'*'′∗′ 的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为...

2019-04-24 23:10:59 210

原创 【Leetcode】20.有效的括号 【字符串】

给定一个只包括 ′(′,′)′'(',')'′(′,′)′,′'′{′'′,′'′}′'′,′[′,′]′'[',']'′[′,′]′ 的字符串,判断字符串是否有效。有效字符串需满足...

2019-04-24 22:57:28 433

转载 数据库索引及引擎(Mysql)

1.什么是索引?在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别(想想小时候查字典),它是用于提高数据库表数据访问速度的数据库对象。A)索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。B)对于非聚集索引,有些查询甚至可以不访问数据页。C)聚集索引可以避免数据插入操作集中于表的最后一个数据页。D)一些情况下,索引还可用于避免排序操作。当然,众...

2019-04-23 22:41:59 351

转载 构造函数与析构函数能否为虚函数?

C++C++C++:构造函数和析构函数能否为虚函数?简单回答是:构造函数不能为虚函数,而析构函数可以且常常是虚函数。1.构造函数不能为虚函数让我们来看看大牛C++C++C++之父 BjarneBjarneBjarne StroustrupStroustrupStroustrup 在《TheTheThe C++C++C++ ProgrammingProgrammingProgramming L...

2019-04-23 20:19:16 697

转载 C++内存泄漏

1. 内存泄漏内存泄漏:指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。2.内存泄漏危害最直接的危害就是系统内存耗尽,系统死机。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用mallocmallocmalloc失败,否则都不会导致任何问题。如果程序运行...

2019-04-23 19:40:10 383

转载 C++中指针和引用的区别

★ 相同点:1.都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。★ 区别:1.指针是一个实体,而引用仅是个别名;2.引用使用时无需解引用(∗*∗),指针需要解引用;3.引用只能在定义时被初始化一次,之后不可变;指针可变;4.引用没有 constconstconst,指针有 const,constconst,constconst,const 的...

2019-04-23 17:24:33 350

原创 C++中delete与delete[]的区别

当调用deletedeletedelete的时候,系统会自动调用已分配的对象的析构函数。当我们用new[]new []new[] 分配的对象是基本数据类型时,用deletedeletedelete和delete[]delete []delete[] 没有区别。但是,当分配的对象是自定义对象时,二者不能通用。一般来说使用newnewnew分配的对象,用deletedeletedelete来释放。用n...

2019-04-23 16:58:00 821

原创 C++中函数模板与类模板、模板类与类模板、模板函数与函数模板的区别

1.函数模板与类模板的区别相同点:1.以关键字template开始,后跟一个模板参数列表2.两者定义的类型参数目的相同,都是将数据的类型参数化不同点:1.函数模板的实例化是由编译程序在处理函数调用时自动完成的;而类模板的实例化必须由程序员在程序中显式地指定。即函数模板允许隐式调用和显式调用,而类模板只能显示调用2.类模板——模板类(class template——templ...

2019-04-23 16:34:08 1503

原创 【Leetcode】32. 最长有效括号 【动态规划】

给定一个只包含 ′(′'('′(′ 和 ′)′')'′)′ 的字符串,找出最长的包含有效括号的子串的长度。示例 111:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 222:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"思路:动态规划。1)dp[i]d...

2019-04-23 15:48:45 1523 3

原创 【Leetcode】17.电话号码的字母组合 【深搜、字符串】

给定一个仅包含数字 2−92-92−9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 111 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。思路:dfsdfsdf...

2019-04-23 15:16:03 169

原创 【Leetcode】14. 最长公共前缀 【字符串】

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路:1)将字符串按长度排序。取最短长度的字符串str...

2019-04-18 12:45:34 137

原创 【Leetcode】13. 罗马数字转整数 【字符串】

罗马数字包含以下七种字符: I,V,X,L,C,D和MI, V, X, L,C,D 和 MI,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, ...

2019-04-18 12:23:29 127

原创 【Cqupt热身赛】诡异的饭卡 【01背包、动态规划】

DescriptionDescriptionDescription海女美术大学食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于555元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有nnn种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余...

2019-04-18 10:35:37 220

原创 【Leetcode】12. 整数转罗马数字 【字符串】

罗马数字包含以下七种字符:I,V,X,L,C,DI, V, X, L,C,DI,V,X,L,C,D 和 MMM。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马...

2019-04-17 19:37:13 152

原创 【Leetcode】10. 正则表达式匹配 【字符串、动态规划】

给定一个字符串 (sss) 和一个字符模式 (ppp)。实现支持 ‘...’ 和 ‘∗*∗’ 的正则表达式匹配。‘...’ 匹配任意单个字符。‘∗*∗’ 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (sss) ,而不是部分字符串。说明:sss 可能为空,且只包含从 a−za-za−z 的小写字母。ppp 可能为空,且只包含从 a−za-za−z 的小写字母,以及字符 ... 和 ...

2019-04-17 19:05:36 834

原创 【Leetcode】8.字符串转换整数(atoi) 【字符串】

请你来实现一个 atoiatoiatoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,...

2019-04-16 16:41:39 98

原创 【Leetcode】6. Z 字形变换【字符串】

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRINGLEETCODEISHIRINGLEETCODEISHIRING” 行数为 333 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOES...

2019-04-16 16:30:44 171

原创 【Leetcode】5.最长回文子串 【字符串、动态规划】

给定一个字符串 sss,找到 sss 中最长的回文子串。你可以假设 sss 的最大长度为 100010001000。示例 111:输入: “babadbabadbabad”输出: “babbabbab”注意: “abaabaaba” 也是一个有效答案。示例 222:输入: “cbbdcbbdcbbd”输出: “bbbbbb”思路:1)中心扩展算法。举个很简单的例子,字符串"aba...

2019-04-15 17:05:53 566

原创 【Leetcode】3. 无重复字符的最长子串 【字符串】

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbbabcabcbbabcabcbb”输出: 333解释: 因为无重复字符的最长子串是 “abcabcabc”,所以其长度为 333。示例 222:输入: “bbbbbbbbbbbbbbb”输出: 111解释: 因为无重复字符的最长子串是 “bbb”,所以其长度为 111。示例 333...

2019-04-15 16:38:52 126

原创 【剑指offer】机器人的运动范围

题目描述地上有一个mmm行和nnn列的方格。一个机器人从坐标0,00,00,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于kkk的格子。 例如,当kkk为181818时,机器人能够进入方格(35,3735,3735,37),因为3+5+3+7=183+5+3+7 = 183+5+3+7=18。但是,它不能进入方格(35,3835,3835,...

2019-04-12 15:10:03 209

原创 【剑指offer】矩阵中的路径

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 aaa bbb ccc eee sss fff ccc sss aaa ddd eee eee 这样的3X43 X 43X4 矩阵中包含一条字符串"b...

2019-04-12 12:24:10 76

原创 【剑指offer】滑动窗口的最大值

题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,12,3,4,2,6,2,5,12,3,4,2,6,2,5,1}及滑动窗口的大小333,那么一共存在666个滑动窗口,他们的最大值分别为{4,4,6,6,6,54,4,6,6,6,54,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,12,3,4,2,6,2,5,1...

2019-04-12 12:14:18 227

原创 【剑指offer】数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()Insert()Insert()方法读取数据流,使用GetMedian()GetMedian()GetMedian()方法获取当前读取数据的中位数。思路:可以采用大顶堆、小顶堆来...

2019-04-12 11:58:22 71

原创 【剑指offer】二叉搜索树的第k个结点

题目描述给定一棵二叉搜索树,请找出其中的第k大的结点。例如, (5,3,7,2,4,6,85,3,7,2,4,6,85,3,7,2,4,6,8) 中,按结点数值大小顺序第三大结点的值为444。思路:如上图中的二叉树,我们对其进行中序遍历,得到结果{1,3,4,6,7,8,10,13,141,3,4,6,7,8,10,13,141,3,4,6,7,8,10,13,14},可以发现这个结...

2019-04-12 11:30:20 76

原创 【剑指offer】序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树思路:

2019-04-11 17:41:24 70

原创 【剑指offer】把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思路:层次遍历。记录当前层的节点个数nodesnodesnodes与下一层节点的个数nextlevelnextlevelnextlevel,当访问某一节点时,将该节点的左右子节点都存入栈中(nextlevel++nextlevel++nextlevel++),并记录存入栈中节点的数量,访问该节点结束后,−−nodes--n...

2019-04-11 15:38:29 87

原创 【剑指offer】按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路:采用两个栈,交换进行存储,000栈存储奇数层,111栈存储偶数层;当某个栈在打印该层的节点时,将下一层的节点存入另一个栈中,当为000栈时,为奇数层,顺序将下一层的节点存入111栈中,这样当访问111栈时便是先访问右节点后访问左节点;当为...

2019-04-11 15:31:48 80

原创 【剑指offer】对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:一颗二叉树是对称的,那么可以将其想象成是一个镜像的树,就像照镜子那样去思考判断。那么就很好用递归进行实现,首先判断如果左节点与右节点都为空,则返回truetruetrue,只要有一个不为空而另一个为空,则返回falsefalsefalse,在此基础上判断其值是否相等,相等...

2019-04-11 15:11:41 100

原创 【剑指offer】二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:题中给出要求,为中序遍历顺序,即左、根、右;如果给定节点存在右节点,则找到其右节点的最左节点即为下一个节点;如果不存在右节点,则寻找父节点是其父节点的左子节点,即如果还存在下一节点则该节点必须位于整棵树的左子树,若位于右子树则寻找不到上述要求的节点...

2019-04-11 14:59:59 129

原创 【剑指offer】删除链表中重复的结点

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1−>2−>3−>3−>4−>4−>51->2->3->3->4->4->51−>2−>3−>3...

2019-04-11 14:38:57 70

原创 【剑指offer】链表中环的入口结点

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出nullnullnull。思路:1)首先利用快慢指针判断是否有环,如果无环则返回null,有环则进行下一步操作2)如果有环,即可看作下图的示例,假设ABABAB段即环外的长度为LLL,BPBPBP段即从进入环到交点的长度为xxx,整个环的长度设为mmm;假设慢指针在环中所走的圈数为ttt,快指针所走的圈数为kkk,那么...

2019-04-11 13:05:50 196

原创 【剑指offer】字符流中第一个不重复的字符

题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go""go""go"时,第一个只出现一次的字符是"g""g""g"。当从该字符流中读出前六个字符“google"“google&...

2019-04-11 12:38:32 87

原创 【剑指offer】表示数值的字符串

题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","−123","3.1416"和"−1E−16""+100",&qu...

2019-04-11 12:20:25 102

原创 【剑指offer】正则表达式匹配

题目描述请实现一个函数用来匹配包括′.′'.'′.′和′∗′'*'′∗′的正则表达式。模式中的字符′.′'.'′.′表示任意一个字符,而′∗′'*'′∗′表示它前面的字符可以出现任意次(包含000次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例...

2019-04-11 12:06:09 230

原创 【剑指offer】构建乘积数组

题目描述给定一个数组A[0,1,...,n−1]A[0,1,...,n-1]A[0,1,...,n−1],请构建一个数组B[0,1,...,n−1]B[0,1,...,n-1]B[0,1,...,n−1],其中BBB中的元素B[i]=A[0]∗A[1]∗...∗A[i−1]∗A[i+1]∗...∗A[n−1]B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]B...

2019-04-09 22:53:32 91

原创 【剑指offer】数组中重复的数字

题目描述在一个长度为nnn的数组里的所有数字都在000到n−1n-1n−1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为777的数组2,3,1,0,2,5,3,4{2,3,1,0,2,5,3,4}2,3,1,0,2,5,3,4,那么对应的输出是第一个重复的数字222。思路:1)...

2019-04-09 22:42:28 116

原创 【剑指offer】把字符串转换成整数

题目描述将一个字符串转换成一个整数(实现Integer.valueOf(string)Integer.valueOf(string)Integer.valueOf(string)的功能,但是stringstringstring不符合数字要求时返回000),要求不能使用字符串转换整数的库函数。 数值为000或者字符串不是一个合法的数值则返回000。输入描述:输入一个字符串,包括数字字母符号,可...

2019-04-08 23:31:13 169

原创 【剑指offer】不用加减乘除做加法

题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、−、∗、/+、-、*、/+、−、∗、/四则运算符号。思路:既然不能用四则运算,那么就只剩位运算了。首先两个整数异或得到不考虑进位的和sumsumsum,然后再进行与运算左移一位即可得到进位carrycarrycarry,然后再把sumsumsum作为num1num1num1,carrycarrycarry作为num2num2num2...

2019-04-08 23:18:10 74

原创 【剑指offer】求1+2+3+...+n

题目描述求1+2+3+...+n1+2+3+...+n1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、casefor、while、if、else、switch、casefor、while、if、else、switch、case等关键字及条件判断语句(A?B:CA?B:CA?B:C)。思路:递归,利用虚函数求解。运行时识别调用哪个函数,其中一个函数实...

2019-04-08 13:12:11 182

原创 【剑指offer】孩子们的游戏(圆圈中最后剩下的数)

题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数mmm,让编号为000的小朋友开始报数。每次喊到m−1m-1m−1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m−10.....

2019-04-08 11:48:09 136

空空如也

空空如也

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

TA关注的人

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