自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gunther的博客

一个人可以非常清贫、困顿、低微,但是不可以没有梦想。只要梦想一天,只要梦想存在一天,就可以改变自己的处境。——奥普拉

  • 博客(43)
  • 资源 (12)
  • 收藏
  • 关注

原创 100. 相同的树

100. 相同的树class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { if (p == nullptr&&q == nullptr)return true; if ((!p&&q)||(!q&&p)||(q->val != p->va...

2019-01-25 00:10:07 123

原创 98. 验证二叉搜索树

98. 验证二叉搜索树分析这道验证二叉搜索树有很多种解法,可以利用它本身的性质来做,即左<根<右,也可以通过利用中序遍历结果为有序数列来做,下面我们先来看最简单的一种,就是利用其本身性质来做,初始化时带入系统最大值和最小值,在递归过程中换成它们自己的节点值,用long代替int就是为了包括int的边界条件,代码如下:递归的:class Solution { public:...

2019-01-24 16:36:12 161

原创 96. 不同的二叉搜索树/95. 不同的二叉搜索树II

95. 不同的二叉搜索树II给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树:正好按照顺序,左边比i小,右边比i大。划分左右子树,递...

2019-01-24 13:25:37 336

原创 94. 二叉树的中序遍历/144. 二叉树的前序遍历/145. 二叉树的后序遍历

94. 二叉树的中序遍历递归版本 class Solution { public: vector<int>res; vector<int> inorderTraversal(TreeNode* root) { if(root==nullptr) return res; inorderTraversal(root->le

2019-01-23 23:58:46 172

原创 93. 复原IP地址

93. 复原IP地址分析:为便于使用,常以XXX.XXX.XXX.XXX形式表现,每组XXX代表小于或等于255的10进制数。所以说IP地址总共有四段,每一段可能有一位,两位或者三位,范围是[0, 255],题目明确指出输入字符串只含有数字,所以当某段是三位时,我们要判断其是否越界(>255),还有一点很重要的是,当只有一位时,0可以成某一段,如果有两位或三位时,像 00, 01, 00...

2019-01-23 19:53:08 194

原创 92. 反转链表 II

就用1,2,3,4,5 画个图就行。class Solution {public: ListNode* reverseBetween(ListNode* head, int m, int n) { if (m > n || m < 0)return nullptr; ListNode *dummy = new ListNode(0); dummy->next =...

2019-01-21 20:58:04 175

原创 91. 解码方法

91. 解码方法题目:一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: “12”输出: 2解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。示例 2:输入: “226”输出: 3解释: 它可以解码为 “B...

2019-01-21 15:00:16 741

原创 89. 格雷编码

摘自[1][2][3]:G:格雷码 B:二进制码 n:正在计算的位根据格雷码的定义可得:G(n) = B(n+1) XOR B(n)AC code:// Binary to grey code class Solution { public: vector<int> grayCode(int n) { vector<int>res; for ...

2019-01-19 22:20:09 551

原创 88. 合并两个有序数组

88. 合并两个有序数组4 ms:class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int i =m; int j=0; while(j<n)...

2019-01-19 20:44:22 805

原创 87. 扰乱字符串

87. 扰乱字符串简单的说,就是s1和s2是scramble的话,那么必然存在一个在s1上的长度l1,将s1分成s11和s12两段,同样有s21和s22.那么要么s11和s21是scramble的并且s12和s22是scramble的;要么s11和s22是scramble的并且s12和s21是scramble的。hard.4ms 暴力递归ac。class Solution { publi...

2019-01-19 14:48:22 480

原创 86. 分隔链表

86. 分隔链表[1]思路:从前向后遍历链表,将结点值小于 x 的结点放入到新链表 1 中,将结点值大于等于 x 的结点放入新链表 2 中。最后,将新链表 2 拼接在新链表 1 后面即可。注意的几点:常见的 ListNode *pHead=new ListNode(0);//新建辅助节点收尾操作 置空4ms: class Solution { public: ListNode...

2019-01-19 10:42:23 191

原创 85. 最大矩形

85. 最大矩形hard[1]分析:此题是之前那道的 84.直方图中最大的矩形 的扩展,这道题的二维矩阵每一层向上都可以看做一个直方图,输入矩阵有多少行,就可以形成多少个直方图,对每个直方图都调用 84.直方图中最大的矩形 中的方法,就可以得到最大的矩形面积。那么这道题唯一要做的就是将每一层构成直方图,由于题目限定了输入矩阵的字符只有 ‘0’ 和 ‘1’ 两种,所以处理起来也相对简单。方法...

2019-01-18 23:10:17 125

原创 84.直方图中最大的矩形

直方图中最大的矩形分析:遍历数组,每找到一个局部峰值,然后向前遍历所有的值,算出共同的矩形面积,每次对比保留最大值,代码如下:class Solution { public: int largestRectangleArea(vector<int> &height) { int res = 0; for (int i = 0; i < heig...

2019-01-18 22:41:09 562

原创 82. 删除排序链表中的重复元素 II/83. 删除排序链表中的重复元素

82. 删除排序链表中的重复元素 II示例 1:输入: 1->1->2输出: 2直接写过这题 在剑指offer,详细解释 class Solution { public: //新建一个头节点,两个辅助指针 ListNode* deleteDuplicates(ListNode* head) { ListNode *p = new ListNode(0...

2019-01-18 17:27:45 144

原创 矩阵中的路径/79. 单词搜索

回溯法class Solution {public: bool hasPath(char* matrix, int rows, int cols, char* str) { if (!matrix || rows <= 0 || cols <= 0 || !str)return false; int *visited = new int[rows*cols]; me...

2019-01-17 22:45:04 338 1

原创 77. 组合/78.子集/90. 子集 II

77. 组合 class Solution { public: void help(vector<vector<int>>&a

2019-01-17 15:21:33 233

原创 76. 最小覆盖子串

76. 最小覆盖子串分析:[1]采用滑动窗口,窗口有左右边界,先通过扩展右边界找出一个包含T中所有字符的子串,然后收缩左边界,直到不能再收缩。记录此时的子串。然后收缩左边界,继续扩展右边界,直到再找到满足要求的子串,和上次的进行比较,保存更小的子串。返回执行,直到右边界到达S串尾,且左边界不能再收缩。code: class Solution { public: string minW...

2019-01-17 14:08:56 215

原创 Leetcode 75. 颜色分类

Leetcode 75. 颜色分类分析[1]:采用两个指针,是0就和左边的数据交换,是2就和右边的数据交换。因为交换过来的元素仍可能为2,所以再次对此元素进行判断8 ms: class Solution { public: void sortColors(vector<int>& nums) { if (nums.empty())return; int...

2019-01-17 10:11:18 124

原创 二维数组的查找,74. 搜索二维矩阵/240. 搜索二维矩阵 II

74. 搜索二维矩阵/二维数组的查找 class Solution { public: bool searchMatrix(vector<vector<int>>& matrix, int target) { if (matrix.empty())return false; //二分查找从左下角或右上角 int m = matrix...

2019-01-16 22:57:45 229

原创 73. 矩阵置零

方法1:赋值另存一个m*n的矩阵,在原矩阵为零的值相应置新的矩阵行和列为零。额外空间为O(m∗n)O(m*n)O(m∗n).方法2:两个数组,bool[m] 和 bool[n] 分别存某行有零,后者某列有零。之后根据数组值将原矩阵相应位置置零。额外空间O(m+n)O(m + n)O(m+n)。方法3:看来许久才明白。先对矩阵进行扫描,标记要进行置0的行和列,对要进行置0的行进行标。同时...

2019-01-16 21:36:56 247

原创 71. 简化路径

71. 简化路径总结出规律:这样我们就可以知道中间是"."的情况直接去掉,是"…"时删掉它上面挨着的一个路径,而下面的边界条件给的一些情况中可以得知,如果是空的话返回"/",如果有多个"/"只保留一个。那么我们可以把路径看做是由一个或多个"/"分割开的众多子字符串,把它们分别提取出来一一处理即可,class Solution { public: string simplif...

2019-01-16 11:03:20 130

原创 跳台阶/70. 爬楼梯/变态跳台阶

跳台阶/70. 爬楼梯class Solution {public: int jumpFloor(int number) { if(number==0) return 0; if(number==1) return 1; if(number==2) return 2; int f1=1; int f2=2;...

2019-01-15 21:46:39 460

原创 69. x 的平方根

69. x 的平方根官网上Ac,并不是考察点。 class Solution { public: int mySqrt(int x) { return sqrt(x); } };二分法分析:对于一个非负数n,它的平方根不会大于(n/2+1),画个图y=xy=\sqrt{x}y=x​和y=12xy=\frac{1}{2}xy=21​x就知道切点是(1,1)。在[0, n/...

2019-01-15 20:52:44 279

原创 66.加一/67.二进制求和

解析:两种方法都有就是在数组必要时(如999)进行插入操作。方法一: class Solution { public: vector<int> plusOne(vector<int>& digits) { for (int i = digits.size() - 1; i &a

2019-01-15 15:57:00 221

原创 65. 有效数字

65. 有效数字 class Solution { public: //考察全面性 bool isNumber(string s) { int len = s.length(); if (len == 0)return false; int i = 0; while (i < len&&s[i] == ' ')i++;//skip ...

2019-01-15 14:03:55 323

原创 62.不同路径/63. 不同路径 II/64. 最小路径和

62.不同路径Title:有一个机器人的位于一个M×N个网格左上角(下图中标记为’Start’)。机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角(下图中标记为’Finish’)。问有多少条不同的路径?注意事项n和m均不超过100Analysis:典型的动态规划问题容易分析出状态转移方程:dp[i][j] = dp[i-1][j] + dp[i][j-1];初...

2019-01-13 22:34:49 158

原创 61. 旋转链表

第一次写出提交这么慢的code 5232ms: class Solution { public: //利用相隔k的两个指针 ListNode* rotateRight(ListNode* head, int k) { if (head == nullptr||k<0)return nullptr; int kStep = 0; ListNode *p...

2019-01-13 20:17:06 116

原创 60.Permutation Sequence 序列排序

class Solution {public: string getPermutation(int n, int k) { string ret; vector<int> factorial(n,1); vector<char&amp

2019-01-12 21:56:00 191

原创 58.最后一个单词的长度

Ac 0ms:class Solution { public: int lengthOfLastWord(string s) { int len = s.length(); int i = len-1,count=0; //aviod space end while(s[i]==' ')i--; while (i>...

2019-01-11 18:41:05 110

原创 56. 合并区间

也是常规思路:1.先按start排序2.比较后一个区间start和前一个区间的end,说明是否肯定有重叠。比较后一个区间end和前一个区间的end,是否被前面包含。经过三次按测试用例的提示Ac 13%: class Solution { public: //给出一个区间的集合,请合并所有重叠的区间。 static bool comp(Interval a, Inter...

2019-01-11 16:49:14 243

原创 55. 跳跃游戏

解释[1]:这个题要先理解题目,题目中说的是:数字代表的是最大的可跳跃长度,比如数字是3,那么你跳1,2,3都行,而不是只可以跳3步。分析:遍历数组一直跳就好,用maxstep记录之前i-1可以跳到的最大的步数,用num[i] + i 去贪心的更新当前i最大步骤即可。遍历的时候有几种情况:1.遍历完恰好跳到最后,或者可以跳过,是true;2.遍历的过程中遍历到第i个元素即i步,结果...

2019-01-11 16:09:38 133

原创 顺时针打印矩阵/54. 螺旋矩阵/59. 螺旋矩阵 II

class Solution { public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int>res; if (matrix.

2019-01-11 12:10:46 140

原创 53. 最大子序和

动态规划思想用循环来实现。f[i]表示以i结束时最大之和,f[i]{f[i−1]+data[i]f(i−1)<0,i≠0data[i]f(i−1)>=0,i=0f[i]\left\{ \begin{matrix} f[i-1]+data[i]\begin{matrix} \begin{matrix} {} & {} \\\end...

2019-01-10 14:50:47 77

原创 50. Pow(x, n)官方的测试用例有坑

首先我想说这题太坑了,如果你先判断是奇数不是偶数,对不起通过不了。AC: class Solution { public: double ExponentUnsignRes(double base, int n) { if (n == 0)return 1.0; if (n == 1)return base; double res = ExponentUnsignR...

2019-01-10 10:28:12 136

原创 49.字母异位词分组

学习unordered_map[1]// C++ program to demonstrate functionality of unordered_map #include <iostream> #include <unordered_map> using namespace std; int main() { // Declaring umap to ...

2019-01-09 22:08:58 204

原创 48. 旋转图像

class Solution { public: //画个图我发现一步很难实现,那我就拆成两步 void rotate(vector<vector<int>>& matrix) { if (matrix.empty())return; int row = matrix.size(); int col = matrix[0].size()...

2019-01-09 18:51:36 97

原创 46. 全排列/47. 全排列II

这题和之前做的剑指offer上的字符串全排列。一样。分析[1]:如果原始要排列的数组顺序为1、2、3、4,现在只要分别交换1、2,1、3,1、4然后对剩下的3个元素进行递归的排列。自己的code:100%class Solution { public: vector<vector<int>&

2019-01-09 13:41:21 293

原创 43. 字符串相乘

这题主要考察大数.当然,大数操作基本就是两个字符串的操作了[1].分析:由于num1和num2的长度小于110,所以不能利用int,long等整型数据的*运算,因为肯定会超出其所能表示的范围。既然不能将其转为整数相乘,让我们可以怎么做呢?对了,我们可以用小学时学的乘法运算竖式来计算.[2]既然我们我们已经理清了解题思路,那你还需要了解一个数学知识,那就是m位数乘以n位数,结果最多为m+n位数...

2019-01-09 11:00:28 1445 1

原创 LeetCode 39. 组合总和/40. 组合总和 II

39. 组合总和示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]示例 2:输入: candidates = [2,3,5], target = 8,所求解集为:[[2,2,2,2],[2,3,3],[3,5]]分析[1]:考虑用回溯法解题。首先将数组从小到大排序,然后从第一个数字开始遍历...

2019-01-07 22:29:03 189

原创 38. 报数

签到题100%AC class Solution { public: string countAndSay(int n) { string res = ""; if (n < 1)return res; res = "1"; for (int i = 0; i < n-1; i++) { string Stemple = ""; ...

2019-01-07 15:25:36 87

四大数据集filmtrust+ciao+Epinions+flixster

librec使用的四大数据集filmtrust+ciao+Epinions+flixster

2018-04-25

Linux下的jdk1.6.0_43

Linux下的jdk1.6.0_43,自行下载,可以的,欢迎来踩,你也可以上oracle官网下载

2017-11-28

cmurphi5.4

cmurphi5.4 (last release : Jan 07, 2010. This release works with 64 as well as 32 bits architectures.)

2017-11-13

universal-usb-install-1.9.7.8

universal-usb-install-1.9.7.8

2017-08-21

firefox3.5中文版

firefox3.5中文版

2017-08-21

php手册下载

php手册

2017-08-17

数据库查看器

数据库查看器

2017-08-08

nasm和ndisasm

nasm和ndisasm

2017-08-07

Eviews6.0破解版

Eviews6.0破解版

2017-05-04

线性代数库

2017-05-04

mfc动态演示图演示.zip

mfc动态演示

2017-04-08

图的遍历动态演示

2017-04-08

空空如也

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

TA关注的人

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