自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PaniniGu的博客

生命不息,奋斗不止。

  • 博客(26)
  • 资源 (5)
  • 收藏
  • 关注

原创 Leetcode 199. 二叉树的右视图 解题思路及C++实现

解题思路:使用层序遍历,得到每一层的最后边的节点,然后push_back到结果容器中。通过使用q.size()函数,只需要一个队列即可实现层序遍历。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod...

2019-06-24 22:48:32 199

原创 Leetcode 129. 求根到叶子节点数字之和 解题思路及C++实现

解题思路:经典的DFS问题。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(N...

2019-06-23 22:09:06 210

原创 Leetcode 117. 填充每个节点的下一个右侧节点指针 II 解题思路及C++实现

方法一:层序遍历解题思路:和第116题一模一样,其实,用队列queue更简单一些,不用将顺序倒来倒去。通过使用队列的长度信息queue.size(),可以只需要一个队列就能做到层序遍历。/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; ...

2019-06-23 21:36:37 436

原创 Leetcode 116. 填充每个节点的下一个右侧节点指针 解题思路及C++实现

方法一:层序遍历(这是比较暴力愚蠢的方法)解题思路:这里使用层序遍历访问这颗完美二叉树,使用的是两个栈,而不是两个队列,因为这样在遍历每一层并指定next指针时会更方便一些,但是要注意的一点是,循环内的临时栈s2 是先push右子节点,再push左子节点。s2中节点顺序是反过来的,所以要依次pop到s1中。/*// Definition for a Node.class N...

2019-06-23 21:06:48 388

原创 Leetcode 114. 二叉树展开为链表 解题思路及C++实现

解题思路:使用递归的方法。根结点的左子树中,最右边的节点是左子树成为链表后的最后一个节点,找到这个节点,然后把这个节点的右节点指向根结点的右子树,同时,将根结点右子节点指向其左子节点,根结点的左子节点变为null,然后递归调用flatten函数。/** * Definition for a binary tree node. * struct TreeNode { * ...

2019-06-23 20:31:52 477

原创 python的re.findall()函数中的括号问题

最近在写python 正则化,遇到了一个坑。re.findall(pattern, str, flag=0) 共三个参数,pattern是匹配的正则表达式,str是待匹配字符串。如果在pattern中,有括号,则返回结果是括号所匹配到的结果,而不是整个正则表达式匹配到的结果。举例如下:下面是匹配mac地址的正则表达式。import res = 'afu4f-3f-54-gg-...

2019-06-21 23:19:15 6554

原创 Leetcode 113. 路径总和 II 解题思路及C++实现

解题思路:典型的深度优先搜索或回溯法的问题。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL),...

2019-06-15 22:10:03 264

原创 Leetcode 106. 从中序与后序遍历序列构造二叉树 解题思路及C++实现

解题思路:思路和Leetcode 105题相同。区别在于,在这一题中,后序遍历的最后一个值为根节点。然后仍然是找到根节点后,划分左右子树,递归构建。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod...

2019-06-15 20:26:29 417

原创 Leetcode 105. 从前序与中序遍历序列构造二叉树 解题思路及C++实现

解题思路:前序遍历preorder中,第一个即为根节点,然后找到中序遍历inorder中对应的节点,则inorder中该节点之前的值均在根节点的左子树上,该节点后面的值都在根节点的右子树上,所以可以使用递归构建二叉树,分别对其左子树的节点、右子树的节点构建数。/** * Definition for a binary tree node. * struct TreeNode {...

2019-06-15 19:45:27 293

原创 Leetcode 102. 二叉树的层次遍历 解题思路及C++实现

解题思路:使用队列来存储每一层的节点,因为输出的vector中,每一层是一个数组,所以在循环内,需要另外一个队列,总共使用两个队列。没获取一层的节点,就更新第一个队列a,将队列b直接赋给a。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode ...

2019-06-15 18:31:53 302

原创 Leetcode 98. 验证二叉搜索树 解题思路及C++实现

解题思路:分别验证root的左右子树是否是二叉树,同时,左子树的最大值要小于root->val,右子树的最小值要大于root->val。在左右子树中,一直向root的左子树探索,就能得到其最小值,一直向右探索,就能得到其最大值。/** * Definition for a binary tree node. * struct TreeNode { * ...

2019-06-15 16:46:56 486

原创 Leetcode 96. 不同的二叉搜索树 解题思路及C++实现

解题思路:因为二叉搜索树的左右子树均为二叉搜索树。输入整数n,求其所有二叉搜索树的总数,就是求根节点分别为1,2, ..., n的二叉搜索树的总和。假设 i 的二叉搜索树的总数为 f(i),当根节点为 j 时,其二叉搜索树的总数为其左子树总数乘以右子树总数,即 f(j - 1) * f(n - j)。所以我们只要记录一个数组nums就可以了。class Solution {...

2019-06-15 16:29:34 408

原创 Leetcode 95. 不同的二叉搜索树 II 解题思路及C++实现

解题思路:递归的思路。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL...

2019-06-13 22:31:23 288

原创 Leetcode 257. 二叉树的所有路径 解题思路及C++实现

解题思路:使用深度优先搜索(DFS),深度优先搜索的终止条件是:当前节点root为叶子节点,即:!root->left && !root->right 为真,则找到了一条路径。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNod...

2019-06-02 20:07:59 369

原创 Leetcode 107. 二叉树的层次遍历 II 解题思路及C++实现

解题思路:使用队列实现二叉树的层序遍历,因为题目中要求每一层的val存储在一个vector中,所以在内循环中,还需要一个队列,用以存储更新每一层的节点。在最后,需要将得到的res数组逆序。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *lef...

2019-06-02 16:02:42 371

原创 Leetcode 104. 二叉树的最大深度 解题思路及C++实现

解题思路:使用递归的方法,递归比较左右子树深度,返回较大的值 + 1。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), l...

2019-06-02 12:28:51 399

原创 Leetcode 101. 对称二叉树 解题思路及C++实现

方法一:递归解题思路:先判断当前根结点root是否为null,如果是,则返回true;然后调用isSame函数,判断其左右节点是否满足对称要求;在isSame函数中,核心思想在于递归比较 r1->left == r2->right 与r1->right == r2->left。/** * Definition for a binary tree no...

2019-06-02 12:16:53 470

原创 Leetcode 100. 相同的树 解题思路及C++实现

解题思路:这道题利用递归的方法。 先对当前的节点p和q进行非null判断,如果均为null,则返回true; 如果一个为null,另一个非null,则返回false; p q均为非null,则比较它们的val,如果val不相等,则false; 如果val相等,则递归判断其左右子节点是否相同。 /** * Definition for a binary...

2019-06-02 11:45:52 182

原创 Leetcode 260. 只出现一次的数字 III 解题思路及C++实现

解题思路:这道题真有点玄乎,请看:https://blog.csdn.net/smile_watermelon/article/details/47750249先mark,之后再仔细研究。class Solution {public: vector<int> singleNumber(vector<int>& nums) { ...

2019-06-01 22:02:36 202

原创 Leetcode 201. 数字范围按位与 解题思路及C++实现

方法一:解题思路:这道题目,其实就是寻找m和n的32位二进制数中,前面的公共部分,然后后面的用0来补齐。因为后面的位中,必然存在某一个数k,m<= k <= n,而k的32位二进制数在那个位置上是0,做了位与运算之后,那一位就成0了。class Solution {public: int rangeBitwiseAnd(int m, int n) { ...

2019-06-01 21:21:21 287

原创 Leetcode 187. 重复的DNA序列 解题思路及C++实现

方法一:使用unordered_map,暴力解法解题思路:使用unordered_map<string, int>遍历字符串s,将每一个长度为10的子字符串计数,然后再遍历一次这个unordered_map,将计数值大于1的子字符串添加到结果res中。class Solution {public: vector<string> findRepeate...

2019-06-01 20:36:02 336

原创 Leetcode 137. 只出现一次的数字 II 解题思路及C++实现

解题思路:分别统计32位上1的个数tmp,然后对tmp进行对3求余,就能将出现三次的数去掉。最后通过 tmp<<i 将这一位的结果加到res上。class Solution {public: int singleNumber(vector<int>& nums) { int res = 0; for(int ...

2019-06-01 14:41:34 293

原创 Leetcode 268. 缺失数字 解题思路及C++实现

方法一:利用求和公式 1+2+...+n = n*(n+1)/2解题思路:利用求和公式 1+2+...+n = n*(n+1)/2,首先求出nums的size,就知道这n个数的和了,然后遍历数组nums,逐个减掉,得到的结果就是没有出现的数。class Solution {public: int missingNumber(vector<int>&...

2019-06-01 14:07:19 294

原创 Leetcode 231. 2的幂 解题思路及C++实现

方法一:递归,暴力解法解题思路:如果 n 是 0 或 1,需要做一个判断,如果n大于1,则可以对其取余,再做判断。class Solution {public: bool isPowerOfTwo(int n) { if(n == 0) return false; if(n == 1) return true; if(n % ...

2019-06-01 13:13:37 176

原创 Leetcode 191. 位1的个数 解题思路及C++实现

解题思路:和第190题思路差不多,通过遍历n的32位,计算得到位为1的个数。class Solution {public: int hammingWeight(uint32_t n) { int res = 0; for(int i = 0; i < 32; i++){ res += (n >> i...

2019-06-01 12:54:23 219

原创 Leetcode 190. 颠倒二进制位 解题思路及C++实现

解题思路:使用移位运算和与运算,将32位二进制数n中的每一位取出来,然后将取出的0或1相应地进行右移操作,最终加和得到结果。下面的程序中,循环执行32次,每一次循环,得到n的第 i 位数,即 通过将 n 向右移 i 位,然后 与 1,得到tmp,再将tmp左移 31-i 位,加到res上,最终即可得到结果res。class Solution {public: uint...

2019-06-01 12:28:37 330

IEEE 802.15.4标准文档 2015年

IEEE 802.15.4标准文档2015年,官网也可以下载,由于现在CSDN不能分享0积分的资源,所以只能设置为1积分下载了。大家要是觉得不划算,就去找找官网的资源吧~

2018-06-02

Windows将下位机串口传输数据存储在txt文件并显示的VS2010工程及exe程序

这是用VS2010+Mscomm控件编程实现了串口调试助手的代码,并能把下位机串口通过串口发送过来的数据存储在电脑F盘的data.txt文件中(具体位置和文件名可自己改),具体一步一步是怎么实现的,可以参考我的博客:https://blog.csdn.net/gjh13/article/details/80409538。从VS的下载安装开始讲起,非常详细的介绍,给大家排坑。有问题可CSDN私信我~

2018-05-22

基于RSSI利用KNN位置指纹法的室内定位(卡尔曼滤波)

本人将RSSI室内定位的matlab仿真分为8步(具体看代码文件夹中的readme.text),readme.text是代码使用教程,代码有很多注释,可结合我博客中的原理来理解,具体可看博客 https://blog.csdn.net/gjh13/article/details/80388532

2018-05-21

LaTeX教程:一份不太简短的 LATEX 2ε 介绍

这是最常见的LaTeX入门书ishort的中译本。

2018-05-14

机器学习实战(中文版)及源代码

其他人分享出来的都太贵了,我这只需最少的2分。机器学习实战及其源代码,想自学的同学不容错过~

2018-01-13

空空如也

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

TA关注的人

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