自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode学习笔记(9) 第653题 Find Duplicate Subtrees

文章目录题目分析流程代码题目分析solution1:将每一棵子树序列化,存入哈希表中,如果某棵子树的个数超过等于2,我们就保留,其他忽略。solution2:为每个唯一的子树分配唯一的id流程solution1:定义一个哈希表存counts, 定义一个vector存需要保留的root节点代码soulution1:/** * Definition for a binary tree node. * struct TreeNode { * int val; * T

2020-11-28 15:30:54 81

原创 LeetCode学习笔记(8) 第297题 Serialize and Deserialize Binary Tree

文章目录题目分析流程代码题目分析采用先序遍历的方式存储成字符串, 当叶子节点左右子树为空的时候 我们使用#代替流程使用字符串输入输出流(istringstream, ostringstream)负责写入写出。代码c++版/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * Tre

2020-11-05 13:10:39 162

原创 LeetCode学习笔记(7) 第98题 Validate Binary Search Tree

文章目录题目分析流程代码题目分析1.假如root节点值为a, 那么左右子树上的值用一定有个范围, 利用范围求解2.BST有个重要的性质, 就是采用中序遍历之后的序列一定是有序的。流程Solution 1 : 定义两个空指针分别表示无穷大或者无穷小的值,遍历左右子树时分别将root->val 设为最大,最小值Solution 2 : 利用BST性质, 使用中序遍历, 定义一个成员变量记录pre_value, 比较与当前值得大小,大于等于返 回False,否则返回True。代

2020-11-04 15:41:52 77

原创 LeetCode学习笔记(6) 第124题 Binary Tree Maximum Path Sum

文章目录题目分析流程代码题目分析和上一篇LeetCode算法题很像。使用递归来解。注意只有一个节点时且节点为负数,不能直接返回0Time Complexity:O(n)Space ComplexityO(h)流程定义一个子函数分别处理子树返回子树的sum,记录最大和。 代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *

2020-11-03 14:47:38 128

原创 LeetCode学习笔记(5) 第687题 Longest Univalue Path

文章目录题目分析流程代码题目分析解决该题的思想还是递归地先处理子树问题流程递归返回左右子树的最长path代码c++版/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {}

2020-11-03 09:46:38 89

原创 LeetCode学习笔记(4) 第1110题 Delete Nodes And Return Forest

文章目录题目分析流程代码知识点题目分析解决tree的问题, 一般考虑使用递归,根据不同的题目,可以选择不同的遍历方式(前序,中序,后序遍历),本题可以使用后序遍历,最后处理根节点, 先分别处理每个节点的左子树,右子树流程使用后序遍历,观察每一个节点是否需要被删除,如果需要删除,保存该节点的左右子树(如果存在的话),不需要删除直接返回。代码python# Definition for a binary tree node.# class TreeNode(object):# de

2020-10-31 10:57:24 172

原创 LeetCode学习笔记(3) 第1145题 Binary Tree Coloring Game

文章目录题目分析流程代码题目分析关键点在于想到与红色节点连接的三条线, 切断数目最多的那一条就ok。流程遍历以x为根节点的子树, 和x的左子树,右子树节点个数(x可能为根节点)比较x,左右子树节点数最大的, 在和剩下的节点数比较(n-以x为根节点的子树节点数)代码c++版/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *

2020-10-30 10:43:42 776

原创 LeetCode学习笔记(2) 第1305题 All Elements in Two Binary Search Trees

文章目录题目:All Elements in Two Binary Search Trees分析流程代码小知识点题目:All Elements in Two Binary Search TreesGiven two binary search trees root1 and root2.Return a list containing all the integers from both trees sorted in ascending order.分析Solution1:Collect a

2020-10-29 15:16:39 123

原创 二叉树(创建,遍历) c++版

#include<iostream>#include<queue>using namespace std;struct BTreeNode{ int m_data; BTreeNode* m_pLeft; BTreeNode* m_pRight;};// 使用前序和中序遍历创建唯一确定二叉树//preOrder 前序遍历序列//inOrder 中序遍历序列//nLen 总的节点数/* 1.判断所输入的序列是否符合要求 2.取

2020-10-28 19:34:18 84

原创 LeetCode学习笔记(1)第2题Add Two Numbers

文章目录题目: Add Two Numbers分析流程代码python版C++版题目: Add Two NumbersYou are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and r

2020-10-28 16:10:46 81

原创 通讯架构学习-nginx-(八) 守护进程

fork执行有关的逻辑代码:注意fork子进程返回值0 ((fork()&&fork())||fork()&&fork()); 7个进程 可以用printf("每个实际用户ID的最大进程数=%d\n", sysconf(_SC_CHILD_MAX));fork失败的可能性: a) 系统中进程太多 b) 缺省情况 最大pid :32...

2020-02-06 20:31:08 241

原创 通讯架构学习-nginx-(七) 进程基础

fork函数:用来创建进程: 进程的概念:一个可执行程序(多个进程可以共享一个可执行程序) 进程:定义为一个可执行程序的实例在一个进程中,可以用fork创建一个子进程,当该子进程创建时,它从fork指令的下一条开始执行与父进程相同的代码 说白了:fork函数产生了一个和当前进程完全一样的新进程, 并和当前进程一样从fork中返回 原来一条执行通路, 变成了两条通路...

2020-02-06 20:26:56 98

原创 通讯架构学习-nginx-(六) 信号集相关知识

信号集: 一个进程必须能够记住它当前阻塞了哪些信号 0000001000000000000000 标志位 我们需要被称为信号集的数据类型 能把60多个信号都表示下。 linux中用sigset_t结构类型来表示信号集;64位 typedef struct{ unsigned long sig[2]; }sigset_t;信...

2020-02-06 20:24:32 135

原创 通讯架构学习-nginx-(五) Unix体系结构:

Unix体系结构: 类Unix操作系统结构分为两个状态:1)用户态, 2)内核态 a)操作系统/内核: 用来控制计算机硬件资源, 提供应用程序运行到环境 我们写的程序, 他要么运行在用户态, 要么运行在内核态。一般来说是在用户态 当程序要执行一些特殊代码时, 程序就有可能切入到内核态, 这种切换是由操作系统控制, 不需要人为介入 换角度理解:用...

2020-02-06 20:21:10 145

原创 通讯架构学习-nginx-(四) 信号的基本概念

信号的基本概念: 进程间常用的通信手段:发送信号, kill.. SIGHUP 信号:通知, 事件通知, 用来通知某个进程发生了一个事情 事件, 信号都是突发的, 信号是异步发生的,也叫软件中断信号的产生: a)某个进程发送给另一个进程或者发送给自己 b)由内核发送给某个进程 1)在键盘上输入命令ctrl+c 中断信号, kill命...

2020-02-06 20:16:10 101

原创 通讯架构学习-nginx-(三) 一些linux知识

编译c程序:gccgcc -o 文件名 文件终端与进程的关系:1)终端与bash进程pts:虚拟终端,每连接一个虚拟终端到Ubuntu,就会出现一个bash进程(shell壳) 黑窗口, 用于解释用户输入的命令2)终端上的开启进程:随着终端退出, 终端上的进程也就退出了。进程关系进一步分析:每个进程还属于一个进程组, 一个或者多个进程的集合, 每个进程组有一个唯一的进程组ID...

2020-02-06 20:13:06 106

原创 通讯架构学习-nginx-(二) nginx目录结构 编译安装

nginx目录结构:auto/:编译相关的脚本, 可执行文件configure一会会用到这些脚本cc/:检查编译器的脚本lib/:检查依赖库的脚本os/:检查操作系统类型脚本types检查平台类型脚本CHANGES:修复的bug, 新增加的功能说明conf:默认的配置文件 控制nginx行为configure:编译nginx之前必须先执行本脚本以生成一些必要的文件cont...

2020-02-06 20:10:39 94

原创 通讯架构学习-nginx-(一) 基础配置

前提安装Ubuntu16.04 server修改dns(用于域名解析) 不然访问不了外界网络sudo vim /etc/resolvconf/resolv.conf.d/base输入nameserver 8.8.8.8 保存sudo 重新启动 令设置生效配置远程连接1)需要在linux上安装ssh服务(服务器程序): sudo apt-get install opens...

2020-02-06 20:04:59 165

空空如也

空空如也

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

TA关注的人

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