自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张泽的博客

Coding change world!

  • 博客(101)
  • 收藏
  • 关注

原创 IP协议详解

IP协议详解IP协议是TCP/IP协议族里面的核心协议,也是socket网络编程的基础之一。IP的头部信息。IP头信息出现你在每个IP数据报中,用于指定IP通信的源端IP地址,目的端IP地址,指导IP分片和重组,以及部分通信行为。IP数据包的路由和转发。IP数据包的路由和转发发生在除目标机器之外的所有主机和路由上。他们决定数据报的转发。IP服务的特点IP协议是TCP/IP协议族的动力...

2020-03-28 18:42:20 433

原创 TCP/IP协议族(2)

封帧数据包用应用程到达数据链路层的过程:应用数据包—>加入TCP/UDP头信息---->TCP报文端/UDP数据包---->加入IP头信息---->IP数据包---->加入以太网头部、尾部---->帧分用数据包到达主机,从数据链路层解析到应用层的过程。ARP工作原理原理ARP协议能实现任意网络层地址道任意物理地址的转换。原理:主机向自己所在网络广...

2020-03-28 18:39:58 93

原创 leetcode 437. 路径总和 III

思想:树的遍历:选用中序遍历记录下从下到上的路径和,包括从非节点开始如何记录从非叶节点开始,向上传递的过程中,将自身节点也向上传递。如何记录路径和:将自身节点的值,加上左右子树传递过的列表的值,最后加上自身的值,并向上传递遍历过程中,记录一共有多少个和为sum# Definition for a binary tree node.# class TreeNode:# d...

2020-03-28 11:30:19 118

原创 leetcode 19. 删除链表的倒数第N个节点

快慢指针,设两个指针:右指针先走n步左指针随着右指针一起移动,直到右指针的下一个节点为空。删除左值针指向的下一个节点# Definit1ion for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = None...

2020-03-28 10:05:13 67

原创 leetcode 18. 四数之和

进行搜索就可以。思路与前面类似题一样。class Solution: def fourSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[List[int]] """ ...

2020-03-28 09:53:44 62

原创 leetcode 17. 电话号码的字母组合

做一个字典映射,找出数字对应的字母进行组合就可以就很简单了。class Solution: def letterCombinations(self, digits): """ :type digits: str :rtype: List[str] """ import itertools N2...

2020-03-28 09:47:21 68

原创 将博客搬至CSDN

将博客搬至CSDN:https://blog.csdn.net/weixin_43477082

2020-03-28 09:39:00 46

原创 leetcode 16. 最接近的三数之和

思想同leetcode 15.只不过结果保留方式(保留绝对值最小的值)不一样。class Solution:def threeSumClosest(self, nums, target):“”":type nums: List[int]:type target: int:rtype: int“”"nums.sort()argmin = 1000000result = []fo...

2020-03-28 09:05:08 111

原创 leetcode 15. 三数之和

先对数组升序排列找三个数之和,我们首先指定一个数,然后对其他两个数进行查找使用二分查找对其他两数进行查找,并使用目前三数之和作为查找条件 def threeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ re...

2020-03-28 09:00:24 70

原创 leetcode 14. 最长公共前缀

每个字符串的前缀相同对所有字符串的相同位置进行比较,用set集合来完成所有相同位置的集合,set集合大小为1,表示此位字符相同,都则不同,比较中止.class Solution: def longestCommonPrefix(self, strs): """ :type strs: List[str] :rtype: str ...

2020-03-28 08:53:12 61

原创 letcode 3. 罗马数字转整数

向右扫描,如果对应的字母代表的值小于右边的,则执行机减法,比如:IV,先减一再加5,结果为4。class Solution: def romanToInt(self, s): """ :type s: str :rtype: int """ R = {'I': 1, 'V': 5, 'X': 10, 'L':...

2020-03-28 08:45:13 72

原创 leetcode 12. 整数转罗马数字

对每个位上进行取整, 按照对应的索引值进行输出即可。class Solution: def intToRoman(self, num): """ :type num: int :rtype: str """ I = ['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', ...

2020-03-28 08:40:28 67

原创 441. 排列硬币

阶梯排列,输出能够最后能完整排的一行行号递减直到n<0为止,逻辑比较简单方法二:数学公式:设第x行为最后满输出(x+1)* x / 2 = n ,最后将x取整即可 def arrangeCoins(self, n: int) -> int: return int(math.sqrt(1/4.0 + 2*n)-1/2)...

2020-03-27 20:05:44 119

原创 leetcode434.单词数目

想法肯定是对空格进行分词做分词之前,必须处理头尾空格和重复空格 # 434 def countSegments(self, s: str) -> int: import re s = re.sub("[\s]+", ' ', s.strip()) if s == ' ' or len(s) == 0: ...

2020-03-27 19:48:24 131

原创 leetcode 11. 盛最多水的容器

思路:左右两个索引向中间移动即可,小值的索引的向中间移动class Solution: def maxArea(self, height): """ :type height: List[int] :rtype: int """ i, j, maxarea, current = 0, len(height)...

2020-03-27 18:51:34 89

原创 leetcode 3

尽可能分成更多的3如果剩下1,则拿出一个3,变成4,则分成2*2如果剩下2,则2不在分class Solution {public: int integerBreak(int n) { if(n<=3)return n-1; int a = n/3, b = n%3; if(b==0) return pow(3, a); ...

2020-03-27 18:49:46 85

原创 leetcode 10. 正则表达式匹配

Python:不说了刷题真鸡儿方便,全匹配即可真是的算法:用DFA就可以(Leetcode 后面又一题也是字符串匹配,需要写到DNA很便捷)class Solution: def isMatch(self, s, p): """ :type s: str :type p: str :rtype: bool ...

2020-03-27 16:10:09 112

原创 leetcode 9. 回文数

不说了:判断回文Python无比方便class Solution: def isPalindrome(self, x): """ :type x: int :rtype: bool """ return str(x) == str(x)[::-1] ...

2020-03-27 16:07:36 105

原创 leetcode 8. 字符串转换整数 (atoi)

思路:正则从头开始匹配就好class Solution: def myAtoi(a,str): """ convert str to an interger :type str: str :rtype: int """ impo...

2020-03-27 16:05:29 72

原创 leetcode 7.整数反转

简单,stl库用起来即可class Solution {public: long long reverse(long long x) { int flag = x >= 0?1:-1; x = abs(x); string temp = to_string(x); std::reverse(temp.begin(), temp.end...

2020-03-27 16:01:40 100

原创 leetcode 6. Z 字形变换

这一题没啥好说的,移动就行了class Solution {public: //6. string convert(string s, int numRows) { // flag :向下移动 row++ // flag :向右上移动 if (numRows <= 1)return s; int x = -1, y=-1; vector&l...

2020-03-27 16:00:23 64

原创 leetcode 5. 最长回文子串

思路:判断局部回文串记录最大长度,从所i你0开始,每一次向后移动一次,检测目前最大长度内是否回文这一题还可以用 二维数组来做。class Solution {public: // 判断是否回文串 bool Palindrome(const string& s){ int i = 0, j = s.size() - 1; while (i <=...

2020-03-27 15:52:44 58

原创 leetcode 4. 寻找两个有序数组的中位数

思路:合并排序取中位数class Solution {public: //4. double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int size = nums1.size() + nums2.size(); vector<int&g...

2020-03-27 15:49:25 82

原创 leetcode 3. 无重复字符的最长子串

思路:检测重复字符,用字典来记录字符是否出现过,并且记录位置最大索引使用 j 向右移动,并在字典中记录字符索引遇见重复字符,则i记录字符的最大索引位置,i,j之间的字符是无重复的,计算长度(取最大值)static int x = []() { ios::sync_with_stdio(false); cin.tie(NULL); return 0;}();class Solu...

2020-03-27 15:47:58 65

原创 leetcode 2.两数相加

思路:数字相加,必须设置进位标志进行加法逻辑与进位即可处理最短链完成时,再一次处理进位操作/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}...

2020-03-27 15:43:53 55

原创 leetcode 1. 两数之和

思路:查找两次即可class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> result; for (int i = 0; i < nums.size(); i++) { vector<in...

2020-03-27 15:41:14 64

原创 TCP/IP协议族(1)

TCP/IP协议族(1)TCP/IP协议族体系结构以及主要协议应用层:ping、telnet、OSPF(开放式最短路径优先)、DNS(域名转换为IP地址)传输层:TCP、UDP、SCTP网络层:IP、ICMP数据链路层:ARP、RARP##数据链路层数据链路层实现了网卡接口的网络驱动程序,以处理数据在屋里媒介上的传输。不同的物理媒介有不同的特性,网络驱动程序隐藏了这些细节,为上层...

2020-03-27 15:38:42 174

原创 leetcode 400. 第N个数字

def findNthDigit(self, n: int) -> int: ''' 1. 确定所要求的数字在哪个10的幂空间:比如 n=13处于[10,100)的空间内 2. 规律:每一个10的幂空间有规律的,1-9为10-1,10-99为(100-10)*2 100-999为(1000-100)*3 .......

2020-03-27 11:44:55 102

原创 423. 从英文中重建数字

从英文中重建数字思路 :观察每个数字的英文,找出数量决定性的字母,首先判断对应的数字个数进而继续推理其他数字:比如我们可以从u决定four的数量,从而可以推理决定five的数量,进而可以根据v来决定seven,其他数字推理逻辑类似。注意:nine中又两个n,最后进行9的推理是,要整除2class Solution: def DeterNums(self, index, A...

2020-03-26 10:19:53 135

原创 Python:类属性和类方法

类属性类属性和实例属性类属性就相当于全局变量,实例对象共有的属性,实例对象的属性位实例对象自己独自拥有。类属性就是类对象拥有的属性,他被所有类的实例对象所共有,在内存中只存在于一个副本,这个和C++中类的静态成员变量有点类似。对于共有属性,在类外可以通过类对象和实例访问。实例属性每个实例各自拥有,相互独立;而类属性有且只有1份,创建的实例都会继承自唯一的类属性。意思就是绑定在一个实例上的属...

2020-03-26 08:31:49 139

原创 Python装饰器

装饰器闭包在计算机科学中,闭包(closure),又称词法闭包(lexical clourse)或者函数闭包,是引用了自有变量的函数。这个引用的自由变量的函数和这个函数一同存在,即使已经离开了创造他的环境也不例外。闭包就是引用了自有变量(非局部变量)的函数,这个函数保存了执行的上下文,可以脱离原本的作用域独立存在。def printMSG():msg = “MSG” #printer ...

2020-03-26 08:31:36 146

原创 僵尸进程和孤儿进程

僵尸进程和孤儿进程僵尸进程父进程使用fork创建子进程,子进程结束后父进程没有调用wait或者waitpid获取子进程返回的状态信息(比如进程描述符、返回状态值等),导致这些信息一直保存在系统中。PS状态命令进程状态为Z的,就是僵尸进程。僵尸进程会在系统中保留进程描述符、进程id等信息。...

2020-03-25 10:47:09 105

原创 网络编程之Epoll

网络编程之EpollLinux平台下使用Epoll进行IO复用的方法,两种触发方式:条件触发和边缘触发Epoll基本原理和过程使用epoll_create来创建保存epoll文件的内存空间使用epoll_ctl在上文创建的内存空间注册监视的文件描述符使用epoll_wait监视已注册好的文件描述符,只要有描述符读或写的epoll_event,epoll_wait就会返回,后续进行遍历操...

2020-03-25 10:43:22 124

原创 leetcode 417. 太平洋大西洋水流问题

417.太平洋大西洋水流问题说明:本人这个属于暴力dfs方法,效率不高, 但是dfs这个方法比较好理解思想:建立已访问矩阵v和能够到达矩阵visitedvisited每个元素有两个值,第一值visited[i][j][0]表示(i,j)能够达到太平洋,第二值visited[i][j][1]表示(i,j)能够达到大西洋进行dfs搜索//417.typedef vector<v...

2020-03-25 10:43:00 73

原创 html页面解析方法

html页面解析方法首先对URL采用URL生成方法对单页数据进行人工分析定位,采用BeautifulSoup来对元素进行定位Xpath正则

2020-03-25 10:25:51 556

原创 B+树

B+树####### 传送门特征B+树是一种树数据结构,是一个n叉树,每个节点通常有很多个孩子,一颗B+树包含根节点、内部节点和叶子节点。B+树通常用于数据库和操作系统的文件系统中。B+树的特点是能够保持数据稳定有序,其插入于修改有较稳定的对数时间复杂度。B+树元素自底向上插入。一个m阶的B树特征根节点至少两个子女每个中间节点都至少包含ceil(m/2)个孩子,最多拥有m个孩子每一...

2020-03-25 10:24:47 205

原创 mongodb和redis的区别

mongodb和redis的区别内存管理机制:Redis数据全部存储在内存,定期写入磁盘,当内存不够是,可以选择指定的LRU算法删除数据。Mongodb数据存在内存上,由Linux系统mmap实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。数据结构:Redis支持多种数据结构,包括Hash、set、list等。Mongodb支持比较单一,但支持丰富的数据表达,索引,最类似于关系型...

2020-03-25 10:24:00 606

原创 Mysql的MVCC机制

Mysql的MVCC机制MVCC是一种多版本并发控制机制,是MySql的InnoDB存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。MVCC是通过保存数据在某个时间点的快照来实现该机制,其在每行记录后面保存两个隐藏的列,分别保存这个行的创建版本号和删除版本号,然后InnoDB的MVCC使用到的快照存储在Undo日志中,该日志通过回滚指针把一个数据行所有的快照连接起来。...

2020-03-25 10:23:30 136

原创 Mysql的四种隔离状态

MySqlMysql的四种隔离状态事务隔离级别脏读不可重复读幻读读未提交是是是不可重复读否是是可重复读否否是串行化否否否幻读:是指读取了其他事务新增的数据。解决:使用表级锁,锁定整张表,事务A多次读取数据的总量之后才释放该锁,这个hi和才允许其他事务新增数据。...

2020-03-25 10:22:55 761

原创 数据库的三大范式

数据库的三大范式第一范式:当关系模式R的所有属性都不能再分解为更基本的数据单位是,称R是满足第一范式,即属性不可分。第二范式:如果关系模式R满足第一范式,并且R的所有非主属性都完全依赖R的每一个候选关键属性,称R满足第二范式。第三范式:设R是满足一个第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键属性,称R满足第三范式,即非主属性不传递依赖于键码。...

2020-03-25 10:20:59 187

空空如也

空空如也

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

TA关注的人

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