while day 07
代码随想录 day18 找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树
找树左下角的值 最简单就是想到层序遍历之后取第一个位置元素就是了 递归的话需要先判断哪里最深的节点 至于最左 保持中左右的遍历顺序 第一次得到最大深度处就是最左的 路径总和 有点像查找子树路径 所以递归回溯是比较好的选择 在求路径的适合,targetSum - node->val 是否为0的判断比一 ......
Scala编程语言day1
一、Scala概述 Scala是一种运行在JVM上的函数式的面向对象语言,它集成了面向对象编程和面向函数式编程的各种特性,以及更高层的并发模型 Scala的语言特点 Scala是兼容的:兼容Java,可以访问庞大的Java类库 Scala是精简的:Scala表达能力强,开发速度快 Scala是高级的 ......
2024-1-13 DAY4
2024-1-13 DAY4 B - Integral Array #include <bits/stdc++.h> #define endl '\n' #define int long long using namespace std; const int N = 1e6 + 10; int n, ......
本地套接字 [补档-2023-07-24]
本地套接字 7-1简介 在Linux系统下,可以使用本地套接字(Unix域套接字)进行进程间通信。本地套接字是一种特殊类型的套接字,用于在同一主机上的进程之间进行通信。 7-2 创建本地套接字服务器的流程 可以使用TCP或UDP的方式来实现通信,使用TCP就得遵循TCP的流程,UDP就要遵循 ......
UDP通信 [补档-2023-07-22]
UDP通信 6-1 简介 UDP通信是面向无链接的,不稳定,不可靠,不安全的一种通信方式。TCP在通信前发送方会向接收方进行三次握手链接,然后确认双方链接后才会进行数据传输,最后四次挥手保证链接关闭。而UDP不会三次握手四次挥手,它会直接向发送方发送数据,无论接收方是否会收到,所以UDP更适合在 ......
多路io复用Select [补档-2023-07-16]
select 2.1 简介 select函数可以用于实现高效的多路复用 I/O,同时处理多个文件描述符的事件,包括监听可读、可写和异常条件,具有阻塞和非阻塞模式,并可以设置超时时间。这使得程序能够高效地处理并发任务,提高性能和响应性。 2.2 select函数 头文件:#include <s ......
多路io复用pool [补档-2023-07-19]
多路IO- poll 3.1简介 poll的机制与select类似,他们都是让内核在以线性的方法对文件描述符集合进行检测,根据描述符的状态进行具体的操作。并且poll和select在检测描述符集合时,会在检测的过程中频繁的进行用户区和内核区的拷贝,随着文件描述符集合中的数量增大,开销也随之增大, ......
多路io复用epoll [补档-2023-07-20]
多路io- epoll 4-1简介 它是linux中内核实现io多路/转接复用的一个实现。(epoll不可跨平台,只能用于Linux)io多路转接是指在同一个操作里,同时监听多个输入输出源,在其中一个或多个输入输出源可用时范慧慧这个源,然后对其进行操作。 epoll采用红黑树来管理待检测的集 ......
算法学习Day26组合总和、分割回文串
Day26组合总和、分割回文串 By HQWQF 2024/01/13 笔记 39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 ......
socket编程 [补档-2023-07-10]
Linux网络编程 1.socket编程 socket是一种通信机制,用于在网络中不同计算机之间进行数据传输,当然也可用用于进程间通信。在linux中,有文件描述符这么个东西,我们可以通过socket函数创建一个网络连接,socket的返回值为一个文件描述符,我们拿到这个文件描述符就可以像操作普通i ......
Linux的信号管理 [补档-2023-07-30]
信号 11-1简介: 信号只是表示某个信号,不可以携带大量信息,信号需要满足特点的条件才会产生。是一种特别的通信手 段。 11-2 信号机制: 假设有两个进程A,B,现在进程A给进程B发送信号,进程B在收到信号之前会执行自己的代码,当收到 信号后,无论执行到了哪里,都要暂停执行然后去处理信号 ......
Linux进程间通信 [补档-2023-07-27]
Linux进程间通信 10-1 简介 在Linux下,进程之间相互独立,每个进程都有自己不同的用户地址空间。任何一个进程的全局变量在另 一个进程中都看不到,所以进程和进程之间不能相互访问。如果非要交换数据则必须通过内核,在内核中开辟 一块缓冲区。假设有两个进程A B,他们之间想要交换数据就需要A ......
Linux的进程管理 [补档-2023-07-25]
Linux进程管理 9-1并发与并行: 并发:在同一个cpu上,并且在一个时间段时,同时运行多个程序。比如在1000毫秒内,我们有5个程 序需要执行,所以我们可以将1000毫秒分为5个200毫秒,让每个程序都占用200毫秒的cpu使用权,这样 在1000毫秒内就可以执行5个程序。 并行:大于 ......
Linux文件IO之二 [补档-2023-07-21]
8-5 linux系统IO函数: open函数: 函数原型:int open(const char *pathname, int flags, mode_t mode); 功能:打开一个文件并返回文件描述符。与c库中的fopen差不多 参数: pathname:要打开的文件路径名。 fl ......
7 - for循环while循环 1+2+...+100和
''' 计算1+2+3+4+....+100的和? (while循环) ''' u = 1 sum = 0 while u<=100: sum = sum + u u = u + 1 print(sum) 计算1+2+3+4+....+100的和?(for循环) v = 1 sum = 0 for ......
Linux文件IO之一 [补偿-2023-07-21]
Linux文件IO 8-1C标准库IO函数的工作流程 使用fopen函数打开一个文件,之后会返回一个FILE* fp指针,fp指针指向一个结构体,这个结构体是c 标准io库中的一个结构体,这个结构体有三个重要的成员: 文件描述符:描述符指向一个打开文件表,通过此表可以找到文件的inode表,通过 ......
5- while循环
''' 循环:重复做某件事情 作用:解决代码重复问题 如何实现循环? while 语法: while 条件表达式: 结果为True则执行语句,结果为False则不执行语句(结束循环) 执行语句 ''' #'认真听课'执行100次 a = 1 # 初始化变量a为1 while a <= 100: # ......
GDB调试程序 [补档-2023-07-19]
gdb调试 它是gcc的调试工具,调试工具都能干什么就不多说了。 7-1生成调试信息 在使用gcc编译c/c++的程序时,需要在编译命令中加入 -g 这一参数,它可以为你显示函数名,变量名 等待。例如:gcc -g test.c -o test 7-2启动gdb调试信息 启动指令:g ......
MakeFile文件的使用 [补档-2023-07-13]
makefile-gdb文件 可以在文件中指定那些文件可以先进行编译,那些文件可以后进行编译,那些文件可以重新编译。他可以自动化编译程序。。。。 6-1 makefile基本规则 如下: 目标: 依赖 (tab) 命令 规则三要素: 目标:要生成的目标文件。 依赖:目标文件由那些 ......
【GDKOI 2024 TG Day2】染色(set) 题解
发现我们给一个点染上色后有: 我们称这是一个大小为 1 的十字。 进一步地,我们给这 5 个点再次染上色后有: 我们称这是一个大小为 2 的十字。 同理可得,我们给这 5 个点染上相同的大小为 2 的十字,可得一个大小为 4 的十字: 假设我们图的边长为 \(N=2^n\),我们只需要染上一个大小为 ......
Linux系统的一些实用操作 [补档-2023-07-30]
Linux的实用操作 4-1.常用快捷键 强制停止:当某些程序运行时,或者命令输入错误时,可以通过 ctrl + c 来强制结束当前的操作。 退出或登出:当我们要退出某些用户时,或者要退出某些特殊的页面可以使用 ctrl + d 来进行。(vi/vim 不可用) 历史命令搜索:通过输入 histor ......
Linux的用户和权限 [补档-2023-07-07]
Linux用户和权限 3-1. su用户切换命令 exit用户退出命令 用户切换命令的语法: su [-] [用户名] 其中: - 可选,表示是否在切换用户后加载环境变量,建议带上。 用户名 可选,表示要切换到那个用户,如果不填则默认切换到root用户上。 用户退出命令:直接 ......
vi / vim编辑器的使用 [补档-2023-07-01]
vi/vim编辑器 vi/vim编辑器是linux中的文本编辑器,其中vim比vi的功能更加强大,可以编辑shell程序,推荐使用vim,下面也将介绍vim如何使用。 2-1 vi/vim的三种工作模式 命令模式 在此模式下,所敲的每一个键都是一个命令,不可以进行文本编辑。比如输入w代表保存 ......
2024-1-12 DAY3
2024-1-12 DAY3 D - Max GEQ Sum 经典线段树调几个小时 #include <bits/stdc++.h> #define endl '\n' #define int long long using namespace std; const int N = 2e5 + 10 ......
代码随想录 day17 平衡二叉树 二叉树的所有路径 左叶子之和
平衡二叉树 之前一直写迭代代码 没有怎么写递归 正好这题不是很好写迭代 练习一下递归 这题递归逻辑相对简单 左右子树高度差判断是不是大于一 可以直接返回结果 不大于一就高度max(l,r)+1 二叉树的所有路径 关键要点 这题适合先序遍历 回溯过程和递归过程是一起写的 进来几次就回溯几次 这样才能回 ......
day4: BigDecimal类, Arrays类, 包装类, String类 , Collection+迭代器,增强for
作业规范【必读】 命名要求: 1. 类名,接口名,枚举名,注解名使用大驼峰 2. 变量名,方法名,包名均使用小驼峰 3. 常量名全大写,多个单词下划线分割 4. 名字要见名知意,如果不知道对应的英文,可以使用拼音代替。不可使用无意义字符 代码规范: 格式要良好,使用IDEA格式化缩进(快捷键:Ctr ......
while循环
## while循环 基本语法:while 条件为true 代码块 while 1: egon_age = 73 age = input('请输入你猜的年龄》》》') age = int(age) if age == egon_age: print('猜对了') elif age > egon_ag ......
吴师兄学算法day06 双指针 485. 最大连续 1 的个数
题目:485. 最大连续 1 的个数 易错点: 代码示例: class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: cnt = 0 max_cnt = 0 for i in nums: if i == 1: ......
07.抓包工具 Charles
目录 工具介绍 安装 界面介绍 工具介绍 支持 SSL 代理 支持流量控制 支持重发网络请求,方便后端调试 支持修改网络请求参数 支持网络请求的截获并动态修改 可以自动将 json 或 xml 数据格式化,方便查看 安装 Charles 官网: https://www.charlesproxy.co ......