自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tinyhttpd项目详解以及遇到的一些问题

仿照tinyhttpd项目写的,每个函数的实现可能有一些不一样,不过大体的函数功能是一样的阅读代码的顺序为:main()——>startup()——>accept_request()——>serve_file()——>execute_cig()。流程图如下:cgi模块执行原理图例解释:定义两个管道input,output,input:由父进程向子进程的输入管道output:由子进程向父进程的输出管道1、让子进程去执行cgi,父进程去做I/O操作。首先将子进程的标准

2021-02-23 23:04:15 1273 2

原创 C语言实现贪吃蛇小游戏(详解)

目录一、程序实现的原理:二、预备知识 1、控制台窗口 2、通过代码将光标移动到控制台指定位置三、 程序框架四、具体操作 1、定义相关头文件 2、定义函数结构以及相关属性五、完成各代码块 1、 实现将光标移到指定位置的操作 2、 打印游戏边框以及游戏初始画面 ...

2019-03-12 16:40:03 61686 88

原创 LeetCode 98. 验证二叉搜索树

验证二叉搜索树题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。解法一:中序遍历序列是递增,则为二叉搜索树。/** * Definition for a binary tree node. * struct Tree...

2020-05-05 19:39:48 305

原创 LeetCode45 跳跃游戏II

跳跃游戏II题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。说明:假设你总是可以到达...

2020-05-04 18:16:11 263

原创 面试题 03.02. 栈的最小值

面试题 03.02. 栈的最小值请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minSt...

2020-04-30 17:22:25 202

原创 面试题 02.08. 环路检测

面试题 02.08. 环路检测给定一个有环链表,实现一个算法返回环路的开头节点。有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:...

2020-04-28 12:26:28 208

原创 面试题 02.07. 链表相交

面试题 02.07. 链表相交给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], sk...

2020-04-27 12:22:19 256

原创 面试题 02.06. 回文链表

面试题 02.06. 回文链表编写一个函数,检查输入的链表是否是回文的。示例 1:输入: 1->2输出: false 示例 2:输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?题解:将后半部分的链表进行反转,然后比较反转后的后半部分链表和前半部分链表...

2020-04-26 13:23:45 149

原创 面试题 02.05. 链表求和

面试题 02.05. 链表求和给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 -> 9,即912模拟大整数加法,链表实现...

2020-04-24 12:52:33 274

原创 面试题 02.03. 删除中间节点

面试题 02.03. 删除中间节点实现一种算法,删除单向链表中间的某个节点(除了第一个和最后一个节点,不一定是中间节点),假定你只能访问该节点。示例:输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f也就是把给定的那个节点删去。解法一(效率低):...

2020-04-23 13:36:13 172

原创 面试题 02.02. 返回倒数第 k 个节点

面试题 02.02. 返回倒数第 k 个节点实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的k保证是有效的。解法一:先遍历一遍链表求出结点的总个数n,再遍历一遍,返回第n-k+1个结点的值。/** * De...

2020-04-23 12:09:32 152

原创 面试题 02.01. 移除重复节点

面试题 02.01. 移除重复节点编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3]示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2]提示:链表长度在[0, 20000]范围内。 链表元素在[0, 20000]范围内。题解:指针p遍历整个链表,判断...

2020-04-22 13:09:32 168

原创 面试题 01.07. 旋转矩阵

面试题 01.07. 旋转矩阵给你一幅由N × N矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]...

2020-04-19 21:25:32 168

原创 面试题 01.06. 字符串压缩

面试题 01.06. 字符串压缩难度简单37收藏分享切换为英文关注反馈字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1: 输入:"aabcccccaaa" 输出:"a2b1c5a3"...

2020-04-18 22:48:18 149

原创 面试题 01.03. URL化

面试题 01.03. URL化难度简单6URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)示例1: 输入:"Mr John Smith ", 13 输出:"Mr%20John%20Smith"示例2: 输入:" ...

2020-04-15 12:33:17 144

原创 面试题 01.01. 判定字符是否唯一

解题思路由于题目提示可以不用额外的数据结构解题,那么我们应该抛弃直观上的用set解题的方法。双重循环的暴力求解由于O(n^2)的时间复杂度,也不应该考虑。位运算方法的思路本质上,跟使用一个bool数组来记录astr的每一位是否已经出现过的思路是一样的。基于bool数组的方法:由于题目没有明确说明,根据示例我判断字符串中出现的字符应该在['a','z']之间,实践证明确实如此。基于这个...

2020-04-13 18:22:07 193

原创 面试题09. 用两个栈实现队列

面试题09. 用两个栈实现队列难度简单10用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"]...

2020-02-18 20:15:26 172

原创 面试题07. 重建二叉树

面试题07. 重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7限制:0 ...

2020-02-18 11:44:36 135 1

原创 面试题06. 从尾到头打印链表

面试题06. 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解法一:递归class Solution {public: vector<int> reversePrint(ListNode...

2020-02-18 11:14:01 161

原创 面试题04. 二维数组中的查找

面试题04. 二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16...

2020-02-14 23:07:14 124

原创 面试题03. 数组中重复的数字

面试题03. 数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000题解一:哈希。将数...

2020-02-13 23:03:13 126 1

原创 算法模板之递推模板

杜教的超神递推板子,给出递推式子的前几项,就可以求出任意一项,前几项可以自己写程序暴力求出。#include #include #include #include #include #include #include #include #include using namespace std;#define rep(i,a,n) for (ll i=a;i<n;i++)#

2020-02-13 22:35:43 157

原创 C语言操作mysql增删改查

数据库:zhang表:people表字段:name(varchar)、age(int)、sex(varchar)、grade(varchar)1、插入数据#include <stdio.h>#include <stdlib.h>#include <mysql.h>int main(){ MYSQL mysq...

2020-01-02 21:26:41 3460 2

原创 C语言连接mysql数据库的方法以及遇到问题的解决方案

所用编译器:codeblocks所用数据库:mysql一、使用codeblocks连接mysql数据库 选择 "setting -> Compiler" 添加动态链接库,共三步 添加“C:\mysql-8.0.16-winx64\lib\libmysql.lib”,前面是mysql的安装路径 2. 添加 “C:\mysql-8.0.16-winx64\...

2020-01-02 16:22:13 917 1

原创 C语言读取配置文件的内容

#include <stdio.h>#include <stdlib.h>#include <string.h>#define path "C:/Users/ZS/Desktop/test.ini"//去除字符串的左右两端的空格char *s_trim(char *str);//实现读取配置文件的一行,当行的开头为#时则跳过这行void re...

2019-12-12 14:42:26 1326 1

原创 C语言获取Windows下系统内存、硬盘、cpu使用率

#define _WIN32_WINNT 0x0501 //这个不加会出错,具体它有什么用我也不知道#include <stdio.h>#include <Windows.h>#include <time.h>#define true 1double m_fOldCPUIdleTime;double m_fOldCPUKernelTime;...

2019-12-04 21:18:29 1101

原创 拼多多笔试题

第一题:最大乘积时间限制:1秒空间限制:32768K热度指数:73219算法知识视频讲解校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。题目描述给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)输入描述:无序整数数组A[n]输出描述:满...

2019-05-05 15:47:20 800

原创 ccf 201509-4 高速公路(强连通分量)

试题编号:201509-4试题名称:高速公路时间限制:1.0s内存限制:256.0MB问题描述:问题描述  某国有n个城市,为了使得城市间的交通更便利,该国国王打算在城市之间修一些高速公路,由于经费限制,国王打算第一阶段先在部分城市之间修一些单向的高速公路。  现在,大臣们帮国王拟了一个

2017-11-30 23:53:20 415

原创 Ubuntu学习篇:关于“无法获得锁 /var/lib/dpkg/lock - open”的解决方案

之前更换了下载源之后,尝试着从终端安装一些软件,输入相应的命令后出现了这个状况:无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”解决方案如下:可以采用强制解锁的方法,在终端输入以下命令:sudo rm /var/cache/apt/archives/loc

2017-10-19 16:36:14 348

原创 Ubuntu学习篇:如何提高Ubuntu系统下载软件的速度。

之前在更换中文语言的时候,下载中文语言安装包的时候发现特别慢,可以说是龟速,完全下载下来,两个小时了还没下载好。一般在Ubuntu系统上下载安装软件都及其的慢,介绍一种提高下载速度的方法,虽然只能达到几十KB每秒,但是比起之前的几KB甚至几B每秒要快许多。可以更换一下软件源,默认的是外国的,当然会慢一点。可以更换成国内的一下软件源。方法如下:第一步:单击右上角的电源按钮,选择系

2017-10-19 16:30:11 9732

原创 Ubuntu学习篇:如何设置中文语言

如何将Ubuntu的英文语言换成中文语言:点击右上角电源键选择系统设置:选择语言支持:选择“添加或删除语言...”找到中文语言,然后下载之后等待一会就好了。

2017-10-19 16:06:17 9466 1

原创 判断两条线段是否相交(叉积)

给出两条线段,判断这两条线段是否相交。struct Point{ double x,y;};double mult(Point a, Point b, Point c){ return (a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y);}bool intersect(Point aa, Point bb, Point cc, P

2017-10-14 17:37:00 1468

原创 算法模板之中国剩余定理

ll p[N],m[N];//扩展欧几里得算法void gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(b==0) { d=a; x=1,y=0; } else //else不能省略 { gcd(b,a%b,d,y,x); y-=(a/b)*x; }}

2017-10-13 10:51:07 241

原创 51nod 1007 正整数分组(类背包)

1007 正整数分组基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。Input第1行:一个数N,N为正整数的

2017-08-31 09:58:11 236

原创 算法模板之01背包问题

二维数组的写法:int w[N],p[N];int dp[M][N];for(int i=0; i<n; i++) for(int j=0; j<=m; j++) if(j<w[i]) dp[i+1][j]=dp[i][j]; else dp[i+1][j]=max(dp[i][j],dp[i][j-w

2017-08-29 16:46:01 342

原创 51nod 1050 循环数组的最大子段和

动态规划修改 隐藏话题1050 循环数组最大子段和基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈

2017-08-29 10:10:12 374

原创 51nod 1010 只包含因子2 3 5的数(预处理+二分)

1010 只包含因子2 3 5的数基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注K的因子中只包含2 3 5。满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15。所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数。例如:n = 13,S中 >= 13的最小

2017-08-28 17:06:26 279

原创 lightoj 1024 - Eid (高精度乘法+n个数的最小公倍数)

1024 - Eid   PDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBIn a strange planet there are n races. They are completely differen

2017-08-28 16:28:16 384

原创 算法模板之次短路

给你N个点和R条边,问从起点到终点的次短路是多少。无向边,且可重复走。#include #include #include #include #define MAXN 100009#define INF 0x3f3f3f3fusing namespace std;typedef long long ll;struct edge{ int to, cost;

2017-08-24 15:20:07 750

原创 lightoj1017 Brush (III) (dp)

1017 - Brush (III)   PDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBSamir returned home from the contest and got angry after se

2017-08-24 09:45:52 230

空空如也

空空如也

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

TA关注的人

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