自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Golang Mac环境安装教程】

本篇教程介绍了两种在Mac M1芯片上安装Golang的方法,同时使用国内源加速下载和安装过程。第一种使用Homebrew安装Golang,这是最常见和最简单的安装方式。第二种则是从官方网站下载Golang安装包进行安装。无论哪种方式,都需要在安装完成后进行环境变量的配置,以便终端可以正确识别Golang的路径。如果你想要更好的下载体验,可以使用国内镜像加速下载Golang安装包。

2023-04-11 00:19:59 1333

原创 使用Python对数据进行清洗

读取数据,这里直接打开CSV格式的文件(可以使用execl转化)数据清洗1.处理异常值将薪资范围转化为平均薪资将公司福利处理成正常的文字格式2.处理缺失值将缺失值补全成其它3.职位信息格式化输出数据保存...

2020-01-07 16:11:12 4054 3

原创 归并排序(超详细注释)

归并排序归并排序采用的是一种分治的思想,如下图,先将要排序的元素分为两块,每个块又开始分裂,然后逐个按照特定顺序合并,合成最后我们需要的数组。归并排序的复杂度:时间复杂度:O(nlogn)空间复杂度:O(n)最好情况和最坏情况都是O(nlogn)是一种稳定的排序方法,因为在合并的同时保证了如果相同大小,左边的会先放进去C++代码:#include<bits/stdc++....

2019-08-21 17:04:29 4568 3

原创 计蒜客 方程的解数(dfs)

题目:蒜头军在求解一个n元的高次方程k1 * x1p2 +k2 * x2p2 +…其中,x1,x2…xn是未知数,k1,k2…kn是系数,p1,p2…pn是指数。方程中所有数都一定是整数。假设未知数1<=xi<=M,i=1…n。你能帮蒜头军就算出这个方程的整数解个数吗?输入格式:第一行:1<=n<=4;第二行:1<=M<=150;第三到最后...

2019-08-08 23:57:24 289

原创 计蒜客 买书(又是dfs)

七夕快乐啊,大半夜的还在这刷题QAQ…不多说了,上正题题目:蒜头君去书店买书,他有 m元钱,书店里面有n本书,每本书的价格为Pi元。蒜头君很爱学习,想把身上钱都用来买书,并且刚好买k本书。请帮蒜头军计算他是否能刚好偶用m元买k 本书。输入格式第一行分别代表m,n,k(1<=m<=100000000)(1<=n<=30)(1<=k<=min(8,n))...

2019-08-07 00:20:57 201

原创 计蒜客 踏青(dfs)

题目:蒜头君和他的朋友周末相约去召唤师峡谷踏青。他们发现召唤师峡谷的地图是由一块一块格子组成的,有的格子上是草丛,有的是空地。草丛通过上下左右 4 个方向扩展其他草丛形成一片草地,任何一片草地中的格子都是草丛,并且所有格子之间都能通过上下左右连通。如果用’G’代表草丛,’.'代表空地,下面的峡谷中有 2 片草地。GG....GG处在同一个草地的2个人可以相互看到,空地看不到草地里面的人。...

2019-08-04 23:05:45 237

原创 计蒜客 走迷宫(dfs)

题目:给一个n行m列的2维迷宫,‘S’表示迷宫的起点,‘T’表示迷宫的终点,’#‘表示不能通过的点,’.‘表示可以通过的点。现在要求从’S’出发走到’T’,每次只能上下左右走动,并且只能进入能通过的点,每个点只能通过一次,现在要求你求出有多少种通过迷宫的方案。输入格式:第一行:n,m(1<=n,m<=10)表示迷宫的大小接下来n行字符串表示迷宫输出格式:输入通过迷宫的方法...

2019-08-02 23:02:40 449

原创 ++i 和 i++的效率对比

1.++i的实现过程int & int::operator++(){*this+=1;return *this;}2.i++的实现过程const int int::operator(int){int tmp = *this;*this+=1;return tmp;}这里我们可以看出++i的实现是this自加然后返回,而i++的实现则是先用一个变量保存i的原址,在进...

2019-08-01 23:33:39 152 2

原创 leetcode-最小栈

题目链接:https://leetcode-cn.com/explore/interview/card/top-interview-quesitons-in-2018/266/heap-stack-queue/1153/因为栈的先进后出特性,所以我们需要一直将最小值放在栈顶,然而还要维持正常的出进栈,用一个栈完成这样的操作复杂度会在O(n)以上,所以我的思路是用两个栈来实现,一个用来保存正常...

2019-07-26 14:33:24 136

原创 Socket---UDP编程

socket常见API //创建socket文件描述符(TCP/UDP,客户端 + 服务器) int socket(int domain,int type,int protocol) //绑定端口号(TCP/UDP,服务器) int bind(int socket , const struct sockaddr *address, ...

2019-07-02 14:51:54 168

原创 Linux网络基础1

协议协议就是网路协议,代表通信计算机双方必须遵守的一种约定协议分层分层的原因:网络协议比较复杂,需要划分成简单的多层分层的好处:拆分成多个层相当于拆分成多个模块。同时降低了整个系统的耦合程度根据实际需要,随时可以替换其中的某一层协议OSI七层模型按照服务/接口/协议对整个复杂的网络通信环境进行层次划分,形成标准,实现网络互联应用层-表示层-会话层-传输层-网络层-链路...

2019-06-27 13:12:12 208

原创 牛客-手套

在地下室里放着n种颜色的手套,手套分左右手,但是每种颜色的左右手手套个数不一定相同。A先生现在要出门,所以他要去地下室选手套。但是昏暗的灯光让他无法分辨手套的颜色,只能分辨出左右手。所以他会多拿一些手套,然后选出一双颜色相同的左右手手套。现在的问题是,他至少要拿多少只手套(左手加右手),才能保证一定能选出一双颜色相同的手套。给定颜色种数n(1≤n≤13),同时给定两个长度为n的数组left,ri...

2019-06-07 00:45:46 469 3

原创 生产者消费者关系模型实现

生产者与消费者模型实现:1.实现线程安全的队列,对外提供线程安全的数据入队和出队操作(加锁)2.创建线程,分别作为生产者与消费者数据入队或数据出队#include<iostream>#include<queue>#include<pthread.h>using namespace std;#define MAX_QUEUE 10 ...

2019-05-31 12:16:42 646

原创 牛客-最小公倍数

给出两个数,求两个数的最小公倍数思路:先用辗转相除法将最大公约数求出,然后利用公式a*b = gcd(a,b)*lcm(a,b);求出最小公倍数#include<bits/stdc++.h>using namespace std;int gcd(int a,int b) //最大公约数(辗转相除){ return b==0?a:gcd(b,a%b);}int lc...

2019-05-29 19:10:43 236

原创 牛客-两种排序方法

考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法:1.根据字符串的字典序排序。例如:**"car" < “carriage” < “cats” < "doggies < "koala"2.根据字符串的长度排序。例如:“car” < “cats” < “koala” < “doggies” < “ca...

2019-05-29 17:57:33 449

原创 浅谈linux下task_struct结构体

首先要说以下PCB(进程控制块)进程控制块是操作系统核心的一种数据结构,主要用来表示进程的状态,它能够使程序成为一个能够独立运行的基本单位,并且可以并发执行的进程。也就是说,系统是根据PCB来对并发执行的进程进行控制和管理。PCB中通常存放着操作系统用于描述进程的情况和控制进程运行的全部信息。PCB中包含的信息有8大部分:标识符:状态:优先级:程序计数器:内存指针:上下文数据:...

2019-05-14 20:11:30 507

原创 linux下task_struct结构体的位置及内容

首先我们要知道这个结构体的定义位置是在内核中的sched.h中。而不是很多博客说的usr子文件夹下,这里附上地址:/usr/src/kernels/3.10.0-514.21.1.el7.x86_64/include/linux(3.10.0-514.21.1.el7.x86_64是内核版本,根据大家自己的电脑进行查看, 因为这个文件夹只有一个,所以也不用刻意去分辨)要查看内容可直接用...

2019-05-14 18:11:59 9568 2

原创 Linux进程信号

信号信号是什么?是一个软件中断,通知进程发生了某个事件,打断当前操作去处理这个事件信号有很多种类,每个信号代表一个事件信号种类62种1~31:非实时信号(继承自UNIX)34~64:实时信号(Linux补充)生命周期信号的产生:硬件:ctrl + c(SIGINT) ctrl + | () ctrl + z(SIGTSTP)软件:kill...

2019-05-14 17:17:01 118

原创 Linux下的调试利器--GDB

简介: gdb是GUN组织开发的Linux下的调试利器。一般用于调试C/C++程序。GDB主要有以下4个功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、你可以改变你的程序,...

2019-05-09 19:53:31 278

原创 C++ 类和对象(类的作用域,对象的两种实例化,this指针)

封装:类的作用域对象的两种实例化:栈上和堆上this指针的特性

2019-05-09 13:00:08 1488

原创 文件系统

文件系统Linux下一切皆文件,就是说linux下所有资源都是文件,甚至包括各种硬件资源也是文件,所以文件系统的存在是很重要的。一般的文件系统有EXT2或者EXT3,这里我们以EXT2为例硬盘组成:一个硬盘有多张盘片叠成,不同盘片有编号 每张盘片上都包括很多圈磁道,每个磁道都有自己的编号 ...

2019-05-06 13:40:11 1227

原创 TopK-求数组中N个数据中最大的K个元素

TopK问题求解的最佳方式就是使用堆。 要求最大的K个元素,所以我们建一个有K个元素的堆(为了方便,直接将前K个值放到堆中),调整堆的形态为小堆,堆顶的元素是最小值,将数组中的每个数字和堆顶比较,如果该数大于堆顶,就把堆顶换成该数,同时使用堆的向下调整操作,将堆调整成排好序的堆,这样依次循环,最后得到的就是最大的K个值void AdjustDown(int array[],i...

2019-04-21 19:39:03 2072

原创 数据结构基础-队列的基本操作

队列(Queue)队列规则:先进先出(First In First Out)使用单向链表来实现对列typedef struct Node{ int value; struct Node *next;} Node;typedef struct Queue{ Node *head; No...

2019-04-17 13:22:38 327

原创 数据结构基础-栈的基本操作

栈(Stack)栈包括两种:数据结构中的栈和内存中的栈。栈 含义 数据结构中 是一种存储方式,规则是先进后出(First In Last Out) 内存中 是一种确实存在的物理结构,在内存中用于存放函数的参数值,局部变量的值等 栈的实现:顺序表或者链表这里我用的是...

2019-04-17 13:14:07 371

原创 Linux常用命令

Linux常用命令1.目录相关 ls:显示当前目录下的文件信息 -l 显示目录下文件的详细信息(八种文件) ( d开头:目录文件 -开头:普通文件 c开头:字符设备文件...

2019-04-16 18:25:39 790

原创 链表的中间结点(快慢指针)

                   leetcode第876题:链表的中间结点题目链接:https://leetcode-cn.com/problems/middle-of-the-linked-list/...

2019-04-11 17:07:21 223

原创 移除链表元素

leetcode203题删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3...

2019-04-11 13:01:27 466

原创 二叉树的非递归遍历(前、中、后)

前序:void PreorderNoR(Node *root){ stack<Node *> s; Node *cur = root; while(!s.empty()&&cur!=NULL){ while(cur!=NULL){ printf("%c",cur->value); s.push(cur); cur = cur-&g...

2019-04-08 22:02:06 220

原创 二叉树的简单遍历(前中后)

以二叉树的前中后序遍历为例(C++)。题目链接:前序:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/中序:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/后序:https://leetcode-cn.com/problems...

2019-04-02 19:26:43 399

原创 逆波兰表达式求值

leetcode.150逆波兰表达式求值根据所给的逆波兰表达式,求出表达式的值。示例1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9示例2:输入: ["4", "13", "5", "/", "+"]输出: 6解释: (4 + (13 / ...

2019-04-02 19:10:52 260

原创 L1-39古风排版(团队设计天梯赛)

题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805091888906240已AC代码:比赛之前觉得自己字符串读取流不太熟悉,手机上看了一下古风排版的AC代码,用的gets(),就学习了一下,比赛死活过不了,WA了十几发,真的是烦。出来查了一下发现PTA上不支持gets,无语...... 折腾了半天心态...

2019-03-31 20:10:32 282

原创 用栈实现对列

leetcode- 232. 用栈实现队列相比于用队列实现栈,用栈实现队列能稍微麻烦一点。实现队列时需要两个栈来实现,左边的是出口,右边的是入口。我们将数据压入right栈,然后出栈保存,进入left,再次出栈的顺序和进入right时的顺序就是一样的。1.push(x) -- 将一个元素放入队列的尾部。/** Push element x to the back of ...

2019-03-27 16:46:06 138

原创 用队列实现栈

leetcode-225. 用队列实现栈使用队列实现栈的下列操作:1.push(x) -- 元素 x 入栈 void push(int x) { q.push(x); }//压栈是一样的就不用修改了2.pop() -- 移除栈顶元素 栈的栈顶是最后一个元素,按照栈的规则是FILO(先进后出),而栈的栈顶对于队列来说就是最后一个要出来...

2019-03-27 15:56:58 9954

原创 反转链表(分步讲解三指针法)

leetcode-206. 反转一个单链表这里我们用到的方法是三指针法。1.首先创建3个指针,分别指向头结点,头结点的前一个结点,头结点的下一个结点2.转变指针的方向,即将P2指向P1这样我们就可以将左边的看作一个新的链表,头结点为1,指向NULL3.这时候我们移动P1,使P1=P2,将P1作为头结点,方便下一次的P2转向4.挪动...

2019-03-23 19:33:49 2040 2

原创 数据结构基础-链表基本操作

链表和顺序表不同,它的存储是随机的,它的每个结点之间用指针链接,每个节点都存着下一个结点的地址,因此插入删除也比较简单,只需要修改指针就可以完成。这里我们比较一下顺序表和链表顺序表:1.插入删除比较麻烦(除了尾插和尾删) 2.可以根据下标来随便访问内容链表: 1.元素的增删复杂度都是O(1)(双向的情况) ...

2019-03-23 18:23:48 204

原创 数据结构基础-顺序表的基本操作

顺序表一般可以分为:1.静态顺序表:使用定常数组存储//静态顺序表,固定大小//typedef struct SeqList{// int array[100];// int size; //有效数据个数(也可以表示下一个可用位置的下标)//}SeqList;2.动态顺序表:使用动态开辟的数组存储//动态顺序表(程序运行期间可以控制容量的大小)typ...

2019-03-19 11:48:37 525

原创 杭电ACM-2546(DP背包问题)

好久没贴过解题报告了,最近写DP写的有点多,消化一下 饭卡Time Limit: 5000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 47339Acc...

2019-03-11 23:52:15 234

原创 条件运算符用法

别人的书上看到一个简单题目,刚开始学C的小伙伴们应该很熟悉,还记得当年在软件实验室那会儿,入学考试全是这个,做到吐。打印图形以下图形:* *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** *  一般方法:两重循环,里面是两...

2018-11-28 17:12:41 4736

原创 杭电ACM-2955 Robberies

                                             RobberiesTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 32415    Accepted Submission(s): 11765...

2018-11-27 12:44:08 230

转载 杭电ACM-2072 单词数(set容器)

                                                   单词数Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 68521    Accepted Submission(s): 17259...

2018-11-26 11:44:30 409

空空如也

空空如也

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

TA关注的人

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