自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据库】范式 事务 隔离级别 视图 查询优化

三大范式事务隔离级别问题【前提:事务是一些操作集合,用专业的术语去解释,就是一个程序的执行单元;事务本身并不包含ACID这四个特性,我们需要通过某些手段,尽可能让这个执行单元满足这四个特性,那么,我们就可以称它是一个事务,或者说是一个正确的,完美的事务。】一般情况下,多个单元操作(事务,这里的事务,并不是完美的事务)并发执行,会出现这么几个问题:脏读:A事务还未提交,B事务就读到了A操作的结果。(破坏了隔离性)重复读:A事务在本次事务中,对自己未操作过数据,进行多次读.

2020-10-07 23:08:48 197

原创 【三】操作系统 - 调度

文章目录处理机调度处理机调度的基本概念处理机调度的三个层次进程调度(低级调度)调度算法的评价指标调度算法 - 批处理系统先来先服务 FCFS短作业优先 SJF高响应比优先 HRRN调度算法 - 交互式系统时间片轮转 RR优先级调度算法多级反馈队列调度算法处理机调度处理机调度的基本概念处理机调度的三个层次进程调度(低级调度)调度算法的评价指标调度算法 - 批处理系统先来先服务 FCFS短作业优先 SJF高响应比优先 HRRN调度算法 - 交互式系统时

2020-10-06 17:28:56 286

原创 【二】操作系统-进程/线程

文章目录1. 进程的定义 / 组成 / 组织形式 / 特征1.1 定义1.2 组成1.3 组织方式1.4 特征2. 进程的状态2.1 进程的3个基本状态 + 2个创建/终止状态2.2 进程状态的转换3. 进程控制1. 进程的定义 / 组成 / 组织形式 / 特征1.1 定义1.2 组成1.3 组织方式1.4 特征2. 进程的状态2.1 进程的3个基本状态 + 2个创建/终止状态2.2 进程状态的转换3. 进程控制...

2020-10-06 11:24:39 213

原创 【一】操作系统的基本概念

文章目录操作系统的功能操作系统的特征操作系统的发展和分类操作系统的运行机制和体系结构操作系统的功能操作系统的特征操作系统的发展和分类操作系统的运行机制和体系结构...

2020-10-05 11:49:07 228 1

原创 [leetcode] 9. 回文数 + 7. 整数反转 + 8. 字符串转为整数

)lc 9特殊情况直接 return False:1.负数2.100 / 2000 / … 非0的整十百千数字整数转化为字符串整数必须转化为字符串才可以使用 len() 和指针class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool """ ## 整数转化为字符串才可以len()以及指针 ..

2020-08-22 13:27:11 229

原创 [数据结构] 二叉树 - 汇总

binary search tree 不要求 balance,但我们希望它尽量 balance,否则,退化成链表形式时,search是O(n) 和线性访问没区别,而且还慢一些,因为在内存里是不连续的,跳来跳去

2020-08-20 17:44:59 121

原创 字符串字典操作

对字典按键 / 值排序f = "k1:v1; k2:v2; k3:v3; k4:v4; ... "arr = f.split(';') # 字符串.split()得到的是列表,列表的元素是以符号分隔开的单个字符串# arr: ["k1:v1", "k2:v2", ...]dic = dict()for item in arr: # item:"k1:v1" item = list(map(int, item.split(':

2020-08-16 23:02:35 940

原创 [剑指offer] 33. 二叉搜索树的后序遍历序列

文章目录题目思路方法1:递归题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。思路先明晰概念:后序遍历定义: [ 左子树 | 右子树 | 根节点 ] ,即遍历顺序为:左、右、根 。二叉搜索树定义: 左子树中所有节点的值 < 根节点的值;右子树中所有节点的值 > 根...

2020-08-07 10:43:33 100

原创 [剑指offer] 55-2. 平衡二叉树

题目输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。注意:规定空树也是一棵平衡二叉树。v1:后序遍历+剪枝后序遍历,从底至顶,返回子树深度,若判定某子树不是平衡树则 “剪枝” ,即,直接返回。depth(root) 函数:计算树root的深度+判断子树平衡返回值:当节点root 左 / 右子树的深度差...

2020-08-07 10:43:28 82

原创 [剑指offer] 27. 二叉树的镜像

题目思路递归 或者 栈。 递归就是左右子树的解构成了二叉树的解。栈就是由根节点开始,遍历各节点,执行交换操作。注意, 因为root.left=mirror(root.right)已经把root.left改变了,所以如果是分步实现左右子树的镜像交换,则需要在被改之前先把root.left存起来,后面调用。### 简化版class Solution: def mirrorTr...

2020-08-07 10:43:20 84

原创 [剑指offer] 8.二叉树的下一个节点

题目给定一个二叉树和其中一个节点,找出该节点在中序遍历序列中的下一个节点。注意:树中的节点除了有两个分别指向左右子节点的指针,还有一个指向父节点的指针。如果给定的节点是中序遍历序列的最后一个,则返回空节点。二叉树一定不为空,且给定的节点一定不是空节点。分情况讨论即可,如下图所示:思路如果当前节点有右孩子,则右子树中最左侧的节点就是当前节点的后继。比如F的后继是H。寻找过程和中...

2020-08-07 10:43:13 92

原创 [leetcode] 106. 从中序与后序遍历序列构造二叉树

题目根据一棵树的中序遍历与后序遍历构造二叉树。假设树中没有重复的元素。样例:输入中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]输出[3,9,20,null,null,15,7]递归,和 [leetcode]105 即 [剑指offer] 07 思路一模一样。构建二叉树的大问题,可以分解成构建左、右子树的两...

2020-08-07 10:43:06 112

原创 [剑指Offer] 52. 两个链表的第一个公共结点

tree一般存在堆里,调用的时候使用栈

2020-08-07 10:42:14 200

原创 [leetcode] 328.奇偶链表 +86.分隔链表 + 143.重排链表

lc86.思路是:先拆分,再拼接具体操作:采用双指针p1,p2,不重新创建每个结点,而是改变结点的指向,归属于子链表1或者子链表2遍历链表,依次判断结点大小,然后操作p1.next 或者 p2.next因为可能需要操作头节点(头节点可能大于x),现有头结点具有不确定性,因此创建新的结点作头节点子链表1和子链表2都需要创建头节点 before_head, after_head,并分别初始化 p1 和 p2时间复杂度:O(n),遍历一次链表空间复杂度:O(1),我们没有使用任何额外的空间,只..

2020-08-07 10:42:00 218 1

原创 [leetcode] 24.两两交换链表中的结点

迭代法:3指针while cur and cur.next: 一定要检查是否可能出现 None.next 的情况考虑特殊测试用例,比如 链表为空 以及 链表只有一个结点,链表只有两个结点,class Solution(object): def swapPairs(self, head): """ :type head: ListNode :rtype: ListNode """ dummy = ListNode

2020-08-07 10:41:49 93

原创 [leetcode] 92. 反转链表II

文章目录题目思路迭代代码1.0代码2.0题目反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入:1->2->3->4->5->NULL, m = 2, n = 4输出:1->4->3->2->5->NULL思路找到链表[m,n],将其反转,然后将m与n ...

2020-08-07 10:41:35 90

原创 [剑指offer] 36. 二叉搜索树与双向链表

题目输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。需要返回双向链表最左侧的节点。思路排序链表:利用二叉搜索树的中序遍历为递增序列,从小到大访问节点双向链表:构造链表时,需要设置前驱节点 pre ,并且 pre.right = cur 的同时也要 cur.left = pre循环链表:构造双向链表时记录头尾节点,...

2020-08-07 10:41:28 93

原创 [剑指offer] 6.从尾到头打印链表

题目:输入一个链表的头节点,按链表值从尾到头的顺序返回一个ArrayList。样例输入:[2, 3, 5]返回:[5, 3, 2]# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self...

2020-08-07 10:41:19 81

原创 [剑指offer] 35.复杂链表的复刻

文章目录题目思路哈希表新旧节点交错法错误片段完整代码题目请实现一个函数可以复制一个复杂链表。在复杂链表中,每个结点除了有一个指针指向下一个结点外,还有一个额外的指针指向链表中的任意结点或者null。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示Node.val 的整...

2020-08-07 10:40:45 78

原创 [剑指offer] 18-2. 删除链表中重复的节点

文章目录题目思路代码题目在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留。样例1输入:1->2->3->3->4->4->5输出:1->2->5 样例2输入:1->1->1->2->3输出:2->3思路有序链表,因此重复的节点一定是相邻的。可以用快慢指针确定重复区域...

2020-08-07 10:40:34 72

原创 [剑指offer] 25. 合并两个排序的链表

文章目录题目思路v1:二路归并(推荐)v2:递归代码v1代码v2题目输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。样例输入:1->3->5 , 2->4->5输出:1->2->3->4->5->5思路v1:二路归并(推荐)【1】新建头部的保护结点dummy,设置cur指针指向dummy。【2...

2020-08-07 10:40:24 74

原创 [剑指offer] 22.链表中倒数第k个节点

思路代码v1# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def findKthToTail(sel...

2020-08-07 10:40:15 69

原创 [剑指offer] 23. 链表中环的入口结点

文章目录题目思路算法1(推荐)代码算法2题目给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。给定如上所示的链表:[1, 2, 3, 4, 5, 6]2则输出环的入口节点3.注意,样例里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。输出3。思路使用快慢指针法。有两种做法,推荐第一种。Ps:链表之所以为链,...

2020-08-07 10:40:02 75

原创 [剑指offer] 18-1. 在O(1)内删除链表节点

文章目录题目思路代码题目给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。假设链表一定存在,并且该节点一定不是尾节点。样例输入:链表 1->4->6->8,删掉节点:2,第2个节点即6(头节点为第0个节点)输出:新链表 1->4->8注:链表题目输入的数字均表示节点的索引(由0开始),节点2也就是值为6的节点。思路在单链表中删除...

2020-08-07 10:39:51 132

原创 [剑指offer] 24. 反转链表

算法1(链表操作,迭代) O(n)翻转即把所有节点的next指针指向前驱节点。由于是单链表,我们在迭代时不能直接找到前驱节点,所以我们需要一个额外的指针保存前驱节点。同时在改变当前节点的next指针前,不要忘记保存它的后继节点。空间复杂度分析:遍历时只有3个额外变量,所以额外的空间复杂度是 O(1)时间复杂度分析:只遍历一次链表,时间复杂度是 O(n)遍历的时候,需要把当前节点cur...

2020-08-07 10:39:42 109

原创 [计算机网络] TCP 三次握手四次挥手

文章目录TCP 和 UDP 的区别TCP 三次握手三次握手的过程为啥不是两次或四次为啥客户端和服务器的 SYN 序号不同MTU 和 MSSSYN 攻击TCP 四次挥手四次挥手的过程为啥四次为啥有 TIME_WAITTCP 和 UDP 的区别1.连接2.服务对象3.传输方式4.可靠性5.拥塞控制6.分片方式7.首部开销8.应用场景TCP 三次握手三次握手的过程0.最初,客户端和服务端都处于 CLOSED 状态。先是服务端主动监听某个端口,处于 LISTEN状态。1.客户端会随机初始

2020-07-16 17:03:46 314

原创 [计算机网络] TCP 协议(二)

文章目录抓包超时重传第一次握手的 SYN 丢包第二次握手的 SYN+ACK 丢包第三次握手的 ACK 丢包如果客户端不发送数据,多久会断开连接三次握手的优化客户端第一次握手的 SYN(重发)服务端第一次握手的 SYN(SYN 队列溢出)第二次握手的 ACK+SYN (重发)第三次握手的 ACK(accept 队列)三次握手的流程抓包Linux 可以用 tcpdump 抓包,保存为 .pcap 格式然后使用 WireShark 可视化和分析(WireShark 可直接抓包 Windows)# 客户端

2020-07-16 17:03:25 325

原创 [计算机网络] TCP 协议

文章目录

2020-07-02 16:53:10 850

原创 [计算机网络] 从输入网址到显示网页

文章目录浏览器解析 URL生成 HTTP 请求DNS 解析 Web服务器 IPTCP 三次握手建立连接IP 远程定位MAC 实际地址网卡交换机路由器服务器返回浏览器解析 URLURL 实际上是请求服务器里的文件资源(没有目录名时,默认根目录下 /index.html 或者 default.html)浏览器对 URL 进行解析,以确定目标服务器(要给哪个 Web 服务器发送请求)和文件名生成 HTTP 请求浏览器根据 Web 服务器 和 文件名,来生成 HTTP 请求信息## GET 请求报文

2020-06-28 20:27:25 874

原创 [VS code - SSH Remote] ln: failed to create hard link ... File exists

使用VS Code远程连接服务器,一直要求选 platform,报错如下[22:19:47.087] > b8aafe7c10e7: running> [22:19:47.200] > Acquiring lock on /home/zju/.vscode-server-insiders/bin/b53d3c26f35df3da2d3f2ed472e73c8edf4f90d0/vscode-remote-lock.yzy.b53d3c26f35df3da2d3f2ed472e73c8

2020-05-20 17:34:31 1604

原创 [python] 基本语法元素

文章目录1. 数据类型2. 变量2.1 变量的概念2.2 变量的赋值3. 控制流程3.1 顺序流程——自上而下依次执行3.2 循环流程——遍历循环(for)3.3 循环流程——无限循环(while)3.4 分支流程(if)4. 输入输出4.1 数据从哪里来数据到哪里去5. 程序格式5.1 缩进5.2 空格输入,得到数据,赋给变量,通过一定的控制流程,来解决我们的问题,最后输出。整个过程,数据就...

2020-05-03 11:41:07 300

原创 [python] 三大神器—生成器、迭代器、装饰器

文章目录1. 生成器1.1 生成器表达式 (...)1.2 生成器函数 yield2. 迭代器2.1 可迭代对象1.可用 `isinstance()` 判断2.可以被 `next()` 函数调用2.2 迭代器1.可用 `isinstance()` 判断2.可以通过 `iter(Iterable)` 创建迭代器3.`for item in Iterable`4.range()不是迭代器3. 装饰器3...

2020-05-02 00:55:05 600

原创 [python] 一些有趣的语法

文章目录1. 关于列表的大坑1.1 删除列表内特定的元素1.2 多维列表的创建2. 解析语法构造列表2.1 基本结构2.2 列表解析的例子3. 解析语法构造其他3.1 构造字典3.2 构造集合4. 条件表达式1. 关于列表的大坑1.1 删除列表内特定的元素方法1:存在元素删除法每次执行存在运算,均从头到尾遍历列表查找,效率极低ls = ["d", "d", "d", "2", "2",...

2020-05-01 17:46:54 506 1

原创 [python] 数据类型的底层实现

文章目录1.奇怪的列表1.1 错综复杂的复制1.奇怪的列表1.1 错综复杂的复制list_1 = [1, [22, 33, 44], (5, 6, 7), {"name":"Alina"}]list_3 = list_1 ## 错误!!只是换了别名list_2 = list_1.copy()...

2020-05-01 15:33:37 667

原创 [python] 模块、异常处理

文章目录1. 异常处理1.1 常见异常1.2 异常的处理1.2.1 try_except1.2.2 Exception1.2.3 try_except_else1.2.4 try_except_finally2. 模块简介2.1 广义模块分类2.2 模块导入2.2.1 导入整个模块2.2.2 导入模块中的类或函数2.2.2 导入模块中的所有类和函数2.3 模块的查找路径1. 异常处理...

2020-04-29 20:31:20 428

原创 [python] 文件

文章目录1. 文件的读写1.1 文件的打开1.文件路径2.打开模式3.字符编码1.2 文件的读取1. 读取整个内容 f.read()2. 逐行读取 f.readline()3. 读取所有行,每行元素形成一个列表 f.readlines()4. 文本文件读取小结5. 二进制文件读取1.3 文件的写入1.向文件写入一个字符串或字节流(二进制)f.write()2.向文件写入列表中多个字符串 f.wri...

2020-04-29 15:07:20 560

原创 [python] 类 - 面向对象的编程

文章目录引子1. 类的定义1.1 类的命名1.2 类的属性1.3 类的方法2. 创建实例2.1 实例的创建2.1 访问属性2.2 调用方法2.3 修改属性3. 类的继承引子3.1 简单的继承父类子类3.2 给子类添加属性和方法3.3 重写父类的方法——多态3.4 用在类中的实例类是对象的载体,把一类对象的公共特征抽象出来,创建成通用的类。然后通过类,创建实例,也就是具体的对象。类的定义有三要...

2020-04-28 17:54:34 295

原创 [python] 函数 - 面向过程的编程

文章目录1. 函数的定义及调用1.1 为什么用函数1.2 函数的定义及调用1.2.1 参数传递0. 形参与实参1. 位置参数2. 关键字参数3. 默认参数4. 可变长参数1.2.2 函数体与变量作用域1.2.3 返回值0. 单个返回值1. 多个返回值2. 函数式编程实例问题分解0. 输入原始数据1. 多场比赛模拟2. 结果汇总输出3. 匿名函数0. 基本形式1. 常用用法1. 函数的定义及调...

2020-04-28 10:28:51 521

原创 [python] python2 和 python3 的区别

文章目录整除print编码字符串True和False迭代器nonlocal通过input()解析用户的输入整除print编码字符串True和False迭代器nonlocal通过input()解析用户的输入...

2020-04-24 00:44:15 175

原创 逻辑回归的常见问题

文章目录1. logistic回归和线性回归的关系2. 交叉熵损失函数的原理3. 交叉熵损失函数的直观理解4. 分界线是什么5. 逻辑回归也可以处理多分类1. logistic回归和线性回归的关系线性回归模型:    写成向量形式为:    “广义线性回归”模型为:    上诉线性回归模型只能够进行回归学习,但是若要是做分类任务,就需要将分类任务的真实标记yyy与线性回归模型的预测...

2020-04-19 23:46:07 2720

空空如也

空空如也

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

TA关注的人

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