自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c总结

2019-05-02 17:28:22 289 1

原创 二叉树遍历

树的节点结构: * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };前序...

2019-09-15 18:06:28 203

原创 图片服务器

项目核心需求:实现一个HTTP服务器,用来存储图片,针对于每一个图片提供一个唯一的url,用来显示图片。1.上传图片2.根据url访问图片 获取图片内容3.获取图片属性4.删除模块划分:1.数据存储模块文件数据库:数据库设计(表的结构(表头信息),个数)create table image_table( image_id int not null primary...

2019-09-06 13:13:42 1405

原创 每日一题

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * struct ListNode { * int val; * ...

2019-09-06 12:23:16 203

原创 小型超市收银台

#收银台开发环境:C/C++、VS2017、MySQL Server 8.0项目功能:实现小型超市管理货物和收银。老板具有管理员超级权限可以对员工进行管理。员工可以对货物仓库进行管理。收银功能的简单实现。项目描述:用C++类封装对MySQL数据库的操作方法。使用DuiDersigner_d可视化工具搭建界面,操作XML文件。Duilib程序Win32消息循环进行事件响应完成功能实现...

2019-09-03 21:58:33 565

原创 MAC地址与IP地址的区别 ARP协议 数据链路层功能

MAC地址与IP地址的区别文章来源:https://www.cnblogs.com/wbxjiayou/p/5157411.html介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题。一、基础知识如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来组成整个网络。局域网也不例外,一般来说,在组网上我们使用的是IE...

2019-09-02 09:11:27 1357

原创 每日一题

有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值 a...

2019-08-28 19:19:02 407

原创 如果很多连接都是处于time_wait状态,该怎么处理

参考大佬领会链接奉上:https://www.cnblogs.com/wzj4858/p/8227350.htmlTIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的。仅仅是主动关闭的一方,在使用FIN|ACK|FIN|ACK四分组正常关闭TCP连接的时候会出现这个TIMEWAIT。服务器在处理客户端请求的时候,如果你的程序设计为服务器主动关闭,那么你才有可能需要关注这个TIMEWA...

2019-08-27 14:36:08 3003

原创 MYSQL常用操作

1、连接数据库mysql -h数据库地址 -u用户名 -p用户密码2、查看数据库支持的字符集show charset;3、添加用户格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”4、创建数据库CREATE DATABASE 数据库名;创建一个使用utf8字符集,并带校验规则的数据库CREATE DATABASE 数据库名...

2019-08-27 14:14:27 138

原创 每日一题

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。方法一:class Solution { public: int MoreThanHalfNum_Solution(vector<int> numbers) ...

2019-08-27 12:22:39 113

原创 TCP

TCP协议保证数据传输可靠性的方式主要有:(校序重流拥)校验和 发送的数据包的二进制相加然后取反,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。 确认应答+序列号 TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。 超时重传 当TCP发出一个段后,它启动一个定时器,等待目的端...

2019-08-25 15:53:49 759 1

原创 每日一题

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,...

2019-08-25 15:12:51 136

原创 每日一题

nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类,并且每种球的数量不少于B盒中的数量,该怎么办呢?输入描述:输入有多组数据。每组数据包含两个字符串A、B,代表A盒与B盒中的乒乓球,每个乒乓球用一个大写字母表示,即相同类型的乒乓球为相同的大写字母。字符串长度不大于10000。输出描述:每一组输入对应一行输出:如果B盒中所有球的...

2019-08-24 20:47:50 269 1

原创 每日一题

从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,例如“hello_world”;而Java则采用一种叫骆驼命名法的规则:除首个单词以外,所有单词的首字母大写,例如“helloWorld”。请你帮可怜的程序员们自动转换变量名。输入描述:输入包含多组数据。每组数据一行,包含一个C语言风格的变量名。每个变量名长度不超过100。输出描述...

2019-08-23 14:19:08 273

原创 每日一题

上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号码列表,请你帮他转...

2019-08-22 19:49:00 219

原创 二叉树后序遍历非递归

给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3]12/3输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?class Solution {public: vector<int> postorderTraversal(TreeNode* root) { vector<int> v; ...

2019-08-22 19:26:49 183

原创 每日一题

nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。输入描述:输入有多行。每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。输出描述:输出每段信息中数字信息。示例1输入$ ...

2019-08-21 20:26:56 217

原创 每日一题

NowCoder最近爱上了五子棋,现在给你一个棋局,请你帮忙判断其中有没有五子连珠(超过五颗也算)。输入描述:输入有多组数据,每组数据为一张20×20的棋盘。其中黑子用“*”表示,白子用“+”表示,空白位置用“”表示。输出描述:如果棋盘上存在五子连珠(无论哪种颜色的棋子),输入“是”,否则输出“否”。示例1输入.................... .................

2019-08-20 15:17:53 226

原创 每日一题

NowCoder每天要给很多人发邮件。有一天他发现发错了邮件,把发给A的邮件发给了B,把发给B的邮件发给了A。于是他就思考,要给n个人发邮件,在每个人仅收到1封邮件的情况下,有多少种情况是所有人都收到了错误的邮件?即没有人收到属于自己的邮件。输入描述:输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。输出描述:对应每一组数据,输出一个正整数,表示无人收到自己邮件的种数。示例1...

2019-08-19 23:23:04 301

原创 每日一题

求字典序在s1和s2之间的,长度在len1到len2的字符串的个数,结果mod 1000007。输入描述:每组数据包涵s1(长度小于100),s2(长度小于100),len1(小于100000),len2(大于len1,小于100000)输出描述:输出答案。示例1输入ab ce 1 2输出56本质:26进制进行计算/*补齐字符串,按照26进制进行计算*/#includ...

2019-08-18 18:51:30 329 1

原创 Linux软链接文件与硬链接文件 静态链接与动态链接

软链接文件与硬链接文件区别硬链接文件是一个文件别名(目录项)--与源文件操作同一个inode节点软链接文件是一个单独的文件,数据中存储源数据路径软链接可以对目录创建,硬连接不可以软链接可以跨分区建立,硬连接不可以删除源文件,软链接文件失效,硬链接文件无影响(链接数-1)静态链接与动态链接静态链接:链接静态库,将代码拷贝,程序大,运行时不依赖静态库,运行时大概率代码冗余动...

2019-08-17 20:48:35 336

原创 每日一题

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入描述:输入包含多组数据。每组数据第一行是两个整数 m 和 n(1≤m, n≤20)。紧接着 m 行,每行包括 n 个字符。每个字符表示一块瓷砖的颜色,规则如下:“.”:黑色的瓷砖;“#”:白色的瓷砖;...

2019-08-17 15:07:52 157

原创 各种排序代码实现

基于C语言实现的Sort.h文件:#pragma once//时间复杂度:O(N^2)//空间复杂度:O(1)//稳定性;稳定//冒泡排序void BubbleSort(int arr[], int len);//应用场景;数据量小,接近有序//时间复杂度:O(N^2)//空间复杂度:O(1)//稳定性;稳定//插入排序void InsertSort(int arr[]...

2019-08-16 16:22:06 479

原创 高级IO

ICMP协议:网络层协议—探测网络数据封装在IP分组中,IP协议直接为ICMP提供服务pingNAT/NAPT:网络地址转换服务部署在网关设备,对流经网关设备的IP报文,替换源端地址为自己的地址 代理服务:工作在应用层,实现数据的中间代理转发的工作;高级IO:五种典型IO/多路转接模型 阻塞/非阻塞/信号驱动/异步/多路转接IO发展历程:效率以及对...

2019-08-16 15:09:03 171

原创 源码到可执行文件 僵尸进程

源码到可执行文件的过程1)预编译主要处理源代码文件中的以“#”开头的预编译指令。处理规则见下1、删除所有的#define,展开所有的宏定义。2、处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。3、处理“#include”预编译指令,将文件内容替换到它的位置,这个过程是递归进行的,文件中包含其他文件。4、删除所有的注释,“//...

2019-08-15 18:52:12 121

原创 线程

有了进程,为什么还要有线程?线程产生的原因:进程可以使多个程序能并发执行,以提高资源的利用率和系统的吞吐量;但是其具有一些缺点:进程在同一时间只能干一件事 进程在执行的过程中如果阻塞,整个进程就会挂起,即使进程中有些工作不依赖于等待的资源,仍然不会执行。因此,操作系统引入了比进程粒度更小的线程,作为并发执行的基本单位,从而减少程序在并发执行时所付出的时空开销,提高并发性。和进程相...

2019-08-14 21:22:56 143

原创 每日一题

网络系统通常会频繁地访问数据库,如果每次访问都创建新连接,性能会很差。为了提高性能,架构师决定复用已经创建的连接。当收到请求,并且连接池中没有剩余可用的连接时,系统会创建一个新连接,当请求处理完成时该连接会被放入连接池中,供后续请求使用。现在提供你处理请求的日志,请你分析一下连接池最多需要创建多少个连接。输入描述:输入包含多组数据,每组数据第一行包含一个正整数N(1≤n≤1000),表示请求...

2019-08-14 21:10:18 175

原创 内存泄露 智能指针

为什么要使用智能指针:智能指针的作用是管理一个指针,因为存在以下这种情况:申请的空间在函数结束时忘记释放,造成内存泄漏。使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数,析构函数会自动释放资源。所以智能指针的作用原理就是在函数结束时自动释放内存空间,不需要手动释放内存空间。RAII://RAII(Resource Acquisit...

2019-08-13 20:31:29 296

原创 每日一题

今年公司年会的奖品特别给力,但获奖的规矩却很奇葩:首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;待所有字条加入完毕,每人从箱中取一个字条;如果抽到的字条上写的就是自己的名字,那么“恭喜你,中奖了!”现在告诉你参加晚会的人数,请你计算有多少概率会出现无人获奖?输入描述:输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。输出描述:对应每一组数据,以“xx.xx%”...

2019-08-12 21:35:56 217

原创 大小端

大小端是哪里来的概念大端、小端是“字节顺序”里面的概念。字节顺序可以分为大端序、小端序、混合序。什么是字节顺序“字节顺序”简称为“字节序”。在计算机系统中,存储对象一般是以字节为单位的,每个地址单元都对应着一个字节。对于单字节对象,存放方法和传输方式一般相同。对于多字节对象,情况就不同了。我们必须建立两个规则:1.这个对象的地址是什么2.在存储器中如何排列这些字节这个对象的地...

2019-08-11 20:27:01 408

原创 二叉树遍历

1.一颗二叉树的前序遍历是ABCDFGHE,后序遍历是BGHFDECA,中序遍历是?根据二叉树的前序遍历可知A为根节点,再根据前序遍历ABCDFGHE和后序遍历BGHFDECA可知,B在后序遍历处于第1位,所以B一定为A的左子树,且A的左子树只有B。再根据前序和后序遍历C为A的右子树。接下来再看后序遍历,我们可以看到E是在C前面;在前序遍历中E排在最后,说明E是C的右子树并且C的右子树唯一,所以...

2019-08-11 19:01:06 2679

原创 每日一题

NowCoder每天要给许多客户写电子邮件正如你所知,如果一封邮件中包含多个收件人,收件人姓名之间会用一个逗号和空格隔开。如果收件人姓名也包含空格或逗号,则姓名需要用双引号包含。现在给你一组收件人姓名,请你帮他生成相应的收件人列表。输入描述:输入包含多组数据。每组数据的第一行是一个整数n(1≤n≤128),表示后面有n个姓名。紧接着n行,每一行包含一个收件人的姓名。姓名长度不超过16个字...

2019-08-11 09:50:55 395

原创 C++源文件 include头文件

C++源文件从文本到可执行文件经历的过程?对于C++源文件,从文本到可执行文件一般需要四个过程:预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。编译阶段:将经过预处理后的预编译文件转换成特定汇编代码,生成汇编文件汇编阶段:将编译阶段生成的汇编文件转化成机器码,生成可重定位目标文件链接阶段:将多个目标文件及所需要的库连接成最终的可执行...

2019-08-10 23:25:31 1525

原创 每日一题

一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?输入描述:输入包含多组数据。每组数据包含两个字符串S,T,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。输出描述:对应每组输入,...

2019-08-10 23:05:46 179

转载 浏览器输入url

浏览器中输入url后发生了什么我将该过程分为了以下六步:DNS域名解析在浏览器DNS缓存中搜索在操作系统DNS缓存中搜索读取系统hosts文件,查找其中是否有对应的ip向本地配置的首选DNS服务器发起域名解析请求建立TCP连接为了准确地传输数据,TCP协议采用了三次握手策略。发送端首先发送一个带SYN(synchronize)标志的数据包给接收方,接收方收到后,回传一个带有...

2019-08-09 21:39:38 232

原创 fork和vfork

fork和vfork的区别:fork的基础知识:fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用:#include <sys/types.h>#include <unistd.h>pid_t fork(void);成功调用fork( )会创建一个新的进程,它几乎与调用fork( )的进程一模一样,这两个进程都会继续运行。在子进程中,成功的...

2019-08-09 21:23:03 241

原创 每日一题

NowCoder在淘宝上开了一家网店他发现在月份为素数的时候,当月每天能赚1元;否则每天能赚2元现在给你一段时间区间,请你帮他计算总收益有多少。输入描述:输入包含多组数据。每组数据包含两个日期从和到(2000-01-01≤从≤到≤2999-12-31)。日期用三个正整数表示,用空格隔开:年月日。输出描述:对应每一组数据,输出在给定的日期范围(包含开始和结束日期)内能赚多少钱。示例1...

2019-08-09 20:55:42 321

原创 Linux虚拟地址空间

Linux虚拟地址空间为了防止不同进程同一时刻在物理内存中运行而对物理内存的争夺和践踏,采用了虚拟内存。虚拟内存技术使得不同进程在运行过程中,它所看到的是自己独自占有了当前系统的4G内存。所有进程共享同一物理内存,每个进程只把自己目前需要的虚拟内存空间映射并存储到物理内存上。 事实上,在每个进程创建加载时,内核只是为进程“创建”了虚拟内存的布局,具体就是初始化进程控制表中内存相关的链表,实际上...

2019-08-08 19:34:54 278

原创 ++i和i++ C与C++小问题

++i和i++的区别 ++i先自增1,再返回,i++先返回i,再自增1++i 实现:int& int::operator++(){*this +=1;return *this;}i++ 实现:const int int::operator(int) { int oldValue = *this; ++(*this); return oldValu...

2019-08-08 19:11:09 344

原创 每日一题

和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下:1月1日:元旦1月的第三个星期一:马丁·路德·金纪念日2月的第三个星期一:总统节5月的最后一个星期一:阵亡将士纪念日7月4日:美国国庆9月的第一个星期一:劳动节11月的第四个星期四:感恩节12月25日:圣诞节现在给出一个年份,请你帮忙生成当年节日的日期。输入描述...

2019-08-08 11:40:45 186

空空如也

空空如也

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

TA关注的人

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