自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 套接字编程--UDP 通信

IP 地址可以确定网络中的一台主机,端口号可以确定一台主机中的进程。端口号和进程 PID 不同的是,并不是所有进程都要对外提供网络请求,端口号是网络级别的概念,PID 是系统概念。发送主机通常将发送缓冲区的数据按照从低到高的顺序发出,而接收主机把从网络上接收到的字节依次保存在接收缓冲区中,也是按照从低到高的顺序保存。但是不同主机的字节序可能不同,这就造成数据读取错误。为了解决这个问题,网络协议对网络数据流的字节序做了统一规定。但是在发送 IP 地址和端口号时,仍需要手动转换。所需头文件:本质上,创建套接字和

2022-06-14 15:21:46 289 1

原创 删除有序链表中重复的元素-II

出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。利用快慢双指针,fast 去探测非重复元素,slow 负责记录非重复元素。

2022-06-13 14:49:49 146

原创 比较版本号

牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等现在给你2个版本号version1和version2,请你比较他们的大小版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订号可能包含前导0,且是合法的。例如,1.02.11,0.1,0.2都是合法的版本号每个版本号至少包含1个修订号。修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。比较规则:一. 比较版本号时,请按从左到右的顺序依次比较它们的修订

2022-06-13 14:18:42 941

原创 Linux 网络基础

不同设备上的进程通信,需要网络通信,设备具有多样性,因此需要统一的网络协议。网络协议是分层的,从上到下分别是:应用层、传输层、网络层、数据链路层和物理层。其中,传输层和网络层是由操作系统维护的。协议具有共性:局域网通信原理本质上是所有主机底层都收到了其它主机的数据,只不过筛选了其它主机发给自身的数据。在局域网通信过程中,由于网络本身的特性,所以同一时刻只能有一台主机进行发送数据。如果网络中的数据发生了碰撞,当前主机是可以检测到的(当发送的消息与接受已发送消息不同时,则数据发生了碰撞),为了处理数据碰撞,每台

2022-06-13 09:39:42 115

原创 链表中的节点每k个一组翻转

将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。双指针确定反转区间,然后反转链表,返回新的头结点,原来的头结点经过反转后就变成了尾节点。每次递归调用,将 k 个节点反转,并返回反转过的新的头结点。...

2022-06-09 21:06:54 582

原创 链表内指定区间反转

将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。

2022-06-09 18:10:27 492 1

原创 合并K个已排序的链表

由于代码形参是直接给了一个数组,因此可以把每个节点都当成一个链表,然后通过每两个节点合并,构成新的链表,再与下一个节点合并,就可以实现整体K个链表的合并。但是这种方法会超时,无法ac。因此采用从中间将数组一分为二,直到分成一个个单独节点。最后将单独节点连接起来,得到合并后的K个链表。...

2022-06-09 13:34:46 251

原创 Linux 内存管理

Linux 内存管理为什么需要内存管理设想一下,CPU 要是直接操作内存的物理地址,那么想要在内存中同时运行两个程序是不可能的,因为第一个程序在一个地址写入一个新值会覆盖第二个程序相同地址上的数据。操作系统为了解决这个问题,避免了两个程序都对绝对物理地址的引用。操作系统为每个进程分配了独立一套虚拟地址,至于虚拟地址是怎么映射到物理地址,对于进程来说是透明的。程序要访问虚拟地址时,由操作系统转换成不同的物理地址,不同进程运行时,写入的是不同的物理地址,这样就不会冲突了。如何管理内存针对虚拟地址空间

2022-05-04 14:26:03 1391 2

原创 C++万字总结(中篇)

文章目录菜狗程序员 C++ 万字总结,从入门到入土(中篇)STLvectorstringliststackqueue二叉搜索树AVL 树菜狗程序员 C++ 万字总结,从入门到入土(中篇)STLvector模拟实现#include <iostream>namespace Schuyler{ // 因为 vector 容器可以存放任意类型,所以要用模板 template <class T> class vector { public: // 用迭代器包装任意

2022-04-06 13:13:21 1010

原创 C++ 万字总结(下篇)

文章目录菜狗程序员 C++ 万字总结,从入门到入土(下篇)特殊类设计一个类,该类只能在堆上创建对象设计一个类,该类只能在栈上创建对象设计一个类,该类不能被拷贝设计一个类,该类不能被继承单例模式C++ 11{}列表初始化decltype右值引用移动构造万能引用新的类功能可变参数模板lambda 表达式emplace_back线程库智能指针菜狗程序员 C++ 万字总结,从入门到入土(下篇)特殊类设计一个类,该类只能在堆上创建对象class HeapOnly{public: static He

2022-03-13 15:49:15 1983

原创 C++ 万字总结(上篇)

文章目录菜狗程序员 C++ 万字总结,从入门到入土(上篇)C++ 语法namespace缺省参数函数重载引用内联函数auto范围 fornullptrC++ 类与对象类的定义this 指针默认(缺省)成员函数const友元初始化列表static 成员C++ 11 成员初始化内部类内存管理虚拟内存分布C/C++ 内存管理模板C++ IO 流继承多态菜狗程序员 C++ 万字总结,从入门到入土(上篇)C++ 语法namespacenamespace 用来解决 C 语言命名缺陷问题,通过使用 namespa

2022-03-05 21:48:00 566

原创 【稳住,can win】数据分析实例

统计911不同类型的紧急情况的次数import pandas as pdimport numpy as npfrom matplotlib import pyplot as pltfile_path = "DataAnalysis/911.csv"df = pd.read_csv(file_path)# 获取分类temp_list = df["title"].str.split(":").tolist()cate_list = list(set([i[0] for i in temp_li

2021-12-17 10:37:33 84

原创 【稳住,can win】Pandas 数据合并和分组聚合

绘制电影分类统计条形图from matplotlib import pyplot as pltimport pandas as pdimport numpy as npfile_path = "DataAnalysis/IMDB-Movie-Data.csv"df = pd.read_csv(file_path)# 统计分类列表# 对索引得到的每条数据转换成字符串,再将字符串按“,”分割转换成一个列表,得到temp_list是一个二维列表temp_list = df["Genre"].s

2021-12-15 10:41:27 1925

原创 【稳住,can win】Pandas 操作数据

Pandas 对象的创建Series 一维数据Series 属性DataFrame 二维数据DataFrame 属性DataFrame 方法DataFrame 对象索引处理 NaN 数据Pandas 对象的创建Series 一维数据Series 属性DataFrame 二维数据DataFrame 属性DataFrame 方法DataFrame 对象索引处理 NaN 数据...

2021-12-13 17:58:16 1755

原创 【稳住,can win】Numpy 的创建和索引

Numpy 对象的创建shape 属性dtype 属性Numpy 对象的索引Numpy 对象的切片Numpy 对象的创建shape 属性dtype 属性Numpy 对象的索引Numpy 对象的切片

2021-12-12 20:43:36 1259

原创 【稳住,can win】Matplotlib 绘制散点图、条形图和直方图

绘制 3, 10 月份每天白天的最高气温散点图绘制票房统计条形图绘制电影时长统计直方图绘制不同组距的直方图绘制 3, 10 月份每天白天的最高气温散点图from matplotlib import pyplot as pltfrom matplotlib import font_managerfont = font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic-gbsn00lp/gbsn00lp.ttf").

2021-12-11 21:04:37 828

原创 【稳住,can win】Matplotlib基本操作

Matplotlib 绘制基本图形调整图像属性调整图像大小调整坐标轴Matplotlib 绘制2小时气温走势Matplotlib 绘制基本图形# 导入 matplotlibfrom matplotlib import pyplot as pltx = range(2, 26, 2)y = [15,13,14.5,17,20,25,26,26,27,22,18,15]# 绘图plt.plot(x, y)# 展示plt.show()可以看到绘制的图形坐标轴的设置是Matplotl.

2021-12-11 19:17:06 683

原创 【稳住,can win】Python二叉树的遍历

二叉树=>遍历遍历=>二叉树

2021-11-12 18:37:25 684

原创 【稳住,can win】Python排序

排序排序方法最坏时间复杂度冒泡排序O(n2)O(n^2)O(n2)选择排序O(n2)O(n^2)O(n2)插入排序O(n2)O(n^2)O(n2)快速排序O(n2)O(n^2)O(n2)希尔排序O(n2)O(n^2)O(n2)归并排序O(nlogn)O(nlogn)O(nlogn)冒泡排序n个数据比较n-1趟,每趟比较次数从n-1逐次减一,每趟确定一个极值。def bubble_sort(data): for j in ran

2021-11-12 18:09:00 70

原创 【稳住,can win】Python栈和队列简易实现

栈class Stack(): def __init__(self): self.data = [] def top(self): size = len(self.data) if size <= 0: return return self.data[size - 1] def push(self, e): self.data.append(e) def p

2021-11-12 13:29:27 522

原创 【稳住,can win】Python双向链表和单向循环链表

代码实现实现简易版本的双向不循环链表和单向循环链表。定义了头插、尾插、任意位置插入、删除和查找函数接口。双向链表class Node(): def __init__(self, data): self.data = data self.pre = None self.next = Noneclass DoubleLinkList(): def __init__(self): self._head = None

2021-11-12 10:22:11 653

原创 【稳住,can win】Python单向链表

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2021-11-11 13:05:05 57

原创 【阅读理解】手套

问题思路代码实现

2021-11-11 09:14:31 204

原创 【稳住,can win】Python模块

模块与包每个包必须包含一个__init__,然后再包含其他模块,模块可以是一个文件,其中包含类或函数。如上图就有三个包,每个包各自还包含了两个模块。总结:模块就是一组代码集合。模块的使用模块可以使用关键字import。当我们在代码中使用import导入模块时,就相当于定义了一个变量指向该模块。...

2021-11-04 20:11:48 72

原创 【稳住,can win】Python朴素文件操作

朴素的文件操作写# 在Linux编/解码为 utf-8with open(r"tt.txt", "w", encoding="utf-8") as f: # 把一个字符串写入文件中 f.write("淦") f.write("fuck") # 把字符串列表写入文件中,不添加换行 f.writelines(["fuck ", "you ", "baby "]) f.writelines(["love\n", "and\n", "hate\n"])读

2021-11-03 22:58:01 55

原创 【稳住,can win】Python异常

异常定义异常处理代码示例异常定义程序中发生了不和预期的状况。异常处理异常处理就是程序出现问题时,仍然可以按照正确的顺序执行代码。和其他面向对象一样,Python也是使用类似于 try...catch的代码来处理异常。在Python中 try代码块包含可能发生异常的代码,except用来捕获异常,如果try代码块中发生异常,则程序立马跳转到except中执行代码,不管try代码块有没有执行玩。捕获异常时,可以多次捕获,捕获的异常范围从小到大,以便确定具体的异常。除了上述这种捕获方式外,Pyt.

2021-11-02 22:34:30 66

原创 【稳住,can win】Python 实现工厂模式和单例模式

工厂模式工厂模式用来实现调用者和创建者的分离。利用工厂类可以来实现对象的创建的管理。单例模式单例模式就是确保一个类只有一个对象,并且提供一个访问该对象的全局访问点。代码实现代码运行结果显示,StarFactory工厂类,可以根据传入的不同国家,创建出不同国家的对象。同时,两次创建工厂类,只创建出一个工厂类对象。...

2021-11-01 22:49:11 221

原创 【稳住,can win】Python的类对象

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-10-31 10:19:30 58

原创 【穩住,can win】Python的函數對象

函數對象全局變量和局部變量函數傳參函數對象如下運行結果所示,當我們定義一個函數時,就相當於創建了一個對象,這個對象叫函數對象,它有自己的ID。全局變量和局部變量當全局變量和局部變量重名時,要想在函數內部使用全局對象需要先聲明。後面的代碼對重名的變量進行操作時,使用的就都是全局變量。否則,在函數內使用的都是局部變量。函數傳參在Python中,所有賦值操作都是引用。也就是賦值號的左值是右值的別名。用可變對象進行傳參時,“寫操作”直接作用在原對象本身。對不可變對象,則會發生寫時拷貝。可.

2021-10-30 20:50:50 58

原创 【稳住,can carry】Python中的zip函数

定义使用定义zip() 函数就是将多个可迭代对象压缩成一个 zip 对象,可迭代对象包括列表、元组、字典、集合、字符串以及 range() 区间构成的列表。这里的压缩就是将传入 zip 的对象对应位置的元素重新组合,生成新的元组。使用...

2021-10-29 14:45:45 71

原创 【稳住,can carry】初识Python字典和集合

字典字典就是key-value键值对的集合。字典创建# 通过创建d = {}# 通过 dict() 创建d = dict(name="Schuyler",age=18)d = dict([("name","Schuyler"),("age",18)])# 通过 zip 创建k = ["name","age"]v = ["Schuyler",18]d = dict(zip(k,v))字典操作# 字典遍历p1 = {"name":"Jack", "age":38}p2

2021-10-28 15:59:16 74

原创 【戒焦戒躁,can win】Linux--inode

查看文件属性认识磁盘磁盘基本构成线性存储inode 和 data block 管理磁盘文件的创建磁盘文件的删除目录和 inode目录的创建软硬链接关于独立的理解问题产生提出解释查看文件属性文件属性(inode) 和 文件数据(data) 均在磁盘文件包含内容和属性,上面查看结果只列出了文件内容的大小,实际上,即使创建出一个空文件,空文件本身内容大小为0,但文件属性的大小也要占据一定的空间。文件属性信息也叫做元信息。inode 就是保存着这些信息,而文件内容保存在磁盘中(inode 也是存储在.

2021-10-28 15:04:52 507

原创 【戒焦戒躁,can win】Linux--IO缓冲区

fopen干了啥缓冲区缓冲策略父子进程与缓冲区的关联系统调用:文件重定向进一步理解:Linux 一切皆文件fopen干了啥书接上文,下面这些代码都是系统函数调用,不能即用C库函数,又用系统函数。举个例子。fopen 打开文件返回的是FILE*类型,不能直接将其传入到write。因为 write接收的文件描述符是int类型。事实上,FILE*类型内部封装了一个文件描述符,文件描述符就是文件描述符指针数组的下标,通过该文件描述符就可以找到对应文件,从而进行读写。更改数组的指向,就可以实现重定向。其中,.

2021-10-28 08:10:51 89

原创 【戒焦戒躁,can win】Linux--IO文件描述符

回忆 C 语言文件操作fopen当前工作目录fputsfgets由 C 文件操作引出的问题系统级别IO打开文件系统级别文件管理文件构成文件与进程关联write底层流水线read底层流水线文件描述符的分配规则文件重定向回忆 C 语言文件操作fopen# include <stdio.h>int main(){ // 第一个参数为文件名, 如果没有指定具体路径,就是在当前工作目录打开 // 第二个参数是指定打开文件方式, w表示写方式打开文件 FILE* fp fopen("wha.

2021-10-27 16:03:04 185

原创 【稳住,can carry】初识Python序列

序列的创建序列的操作zip操作序列的创建在Python中,变量名可以理解为一个指针,单独一个数字就可以理解为一个对象。所以Python中的序列的创建可以理解为:序列名指向序列,序列中的每个元素名又指向元素构成的对象。如下图所示。序列包括列表、元组、字典、字符串、集合。接下来以List为例,介绍序列的各种操作。序列的操作# 序列创建a = list() # 创建空序列,等同于 a = []# 添加元素a.append() # 类似数组尾插,推测list底层是用数组实现, 若是如此,那么应当.

2021-10-27 11:31:07 81

原创 【稳住,can carry】初识Python字符串

字符串创建字符串操作字符串的输入字符串的遍历字符串比较字符串创建在Python中字符串也是对象。如下所示,变量str指向一个字符串对象。str = "This is a sequence of characters"而这个字符串对象是不可变的。字符串操作字符串的输入str = input("please input ... whatever") # input函数中为提示符提示用户输入字符串的遍历for i in range(len(str)): print(str[i]) 若.

2021-10-26 21:03:56 85

原创 【稳住,can carry】初识Python对象

Python中的对象对象定义查看对象属性Python中的对象对象定义与笔者以往所学的C/C++不同,Python中无时无刻不在虚拟内存的堆区中产生对象。就以下面这行代码举个例子。a = 1 # 定义一个变量?从以往所学的无论是面向对象还是面向过程的经验,盲猜这条代码的意义是定义一个变量。实际上,这条代码的意思是,在堆上为1这个对象申请一块空间。然后,用就可以将a成是这个对象的别名。类似于下面的C++代码。int& a = new int(1);查看对象属性type() 可以查.

2021-10-25 19:49:36 82

原创 【C++ STL】之 vector

vector容器迭代器失效问题模拟实现vector创建vector增push_backinsert删pop_backerase完整代码迭代器失效问题在vector进行插入和删除操作时,可能会引发迭代器失效问题。看下面这一段代码,本意是想删除3,结果倒是30被删除了。这里我们就认为迭代器失效了,pos的意义变了,插入数据之后,pos不再指向3,而是30,导致后续删除时没有达到删除3的目的,反而删除的是30。解决方法:可以在插入之后,再find重新查找元素位置。vector<int> v =

2021-08-08 13:03:59 83

原创 Linux 从购买云服务器到 Hello World

Linux from zero to hello world环境安装为什么要购买云服务器登录云服务器操作系统定位LInux 基本指令lspwdcdmkdirrmdirrmmancpmvcatmoreless输入重定向输出重定向追加| 管道时间date日历calfindgrepfile打包zipunzip权限管理添加用户删除用户基础开发工具yum环境安装为什么要购买云服务器首先云服务器环境配置简单,可以提供多人使用,符合实际开发场景,可以作为我们学习环境进行仿真。其次重装方便,学习成本低。

2021-08-05 16:11:58 98

原创 C++模板类string那点事儿

C++模板类string那点事儿初识string常用string接口迭代器reserve和resize模拟实现string增删查改增尾插头插/中间插入删查改string相关算法初识stringstring是STL(Standard Template Library)标准模板库提供的一个容器,官方定义如下:可见string只是basic_string的一个模板类。常用string接口接口说明string(const string& str)拷贝构造函数stri

2021-07-25 10:42:31 290

空空如也

空空如也

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

TA关注的人

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