自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小二笙的博客

一剑,一人,足矣

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

原创 HTML基础

HTML基础以代码+注释形式展示HTML一些常用标签的使用方法<!DOCTYPE html> <!--符合h5标准--><html lang="en"> <!--网页语言支持--> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

2020-06-14 11:05:34 297 2

原创 Linux清空文件内容的几种方法(详)

1)catcatcat /dev/null/dev/null/dev/null > filenamefilenamefilename查看我们要处理的文件:使用catcatcat进行处理,处理后文件大小为0,文件内容为空:2)进入文件,EscEscEsc --> :::%ddd --> :::wqwqwq经这种方式处理后,文件大小为0,文件内容为空3)>fil...

2019-12-22 14:09:39 1697

原创 【从0到1 Shell】(六)循环结构

步进循环语句for1.带列表的forforfor循环语句基本语法:for variable in {list}do statement1 statement2 ..done例1:使用带列表的forforfor语句#! /bin/bashfor var in 1 2 3 4 5 6 7 8do echo "the number is $var"done执行结果:...

2019-10-08 19:54:35 418

原创 【从0到1 Shell】(五)条件测试和判断语句

条件测试条件测试基本语法在shellshellshell程序中,用户可以使用测试语句来测试指定的条件表达式的条件的真或者假。当指定的条件为真时,整个条件测试的返回值为0;反之,如果指定的条件为假,则条件测试语句的返回值为非0值。这一点与其他程序设计语言不一样,是为了保持与shellshellshell程序的退出状态一致。当某个shellshellshell程序成功执行后,该进程会返回一个0...

2019-10-08 11:07:31 292

转载 C++之RAII技术解析

转载:C++之RAII技术解析1.什么是RAII 技术?我们在C++C++C++中经常使用newnewnew申请了内存空间,但是却也经常忘记deletedeletedelete回收申请的空间,容易造成内存溢出,于是RAIIRAIIRAII技术就诞生了,来解决这样的问题。RAIIRAIIRAII(ResourceResourceResource AcquisitionAcquisitionA...

2019-09-23 16:41:08 241

原创 【C++设计模式】单例模式

一、单例模式优点及适用场景单例模式特点:保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。实现策略:1.单例模式的类只提供私有的构造函数2.类定义中含有一个该类的静态私有对象3.该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象实现方法:饿汉式单例(开始即初始化单例对象)、懒汉式单例(需要时再实例化单例对象)优点:1.在内存中只有一...

2019-09-23 15:20:43 426

原创 【面试】单链表排序,时间复杂度O(nlogn)、空间复杂度O(1)

(1)如果不要求空间复杂度,则可以将链表元素存至vectorvectorvector,排序后将其化为链表#include <iostream>#include <vector>#include <algorithm>using namespace std;struct ListNode { int val; ListNode* next...

2019-09-23 09:36:43 2868

转载 select、poll、epoll之间的区别

转载自select、poll、epoll之间的区别(搜狗面试)(1)selectselectselect==>时间复杂度O(n)O(n)O(n)它仅仅知道了,有I/OI/OI/O事件发生了,却并不知道是哪几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以selectselectselect具有O(n)O(n)O(n)...

2019-09-14 13:54:48 173

原创 libevent源码分析(五)事件处理框架

事件处理框架event_base正如我们在libevent源码分析(二) Reactor模式中提到的ReactorReactorReactor模式,其中包含事件源、ReactorReactorReactor框架、多路复用机制以及事件处理机制;而eventeventevent_ basebasebase对应于ReactorReactorReactor模式中的ReactorReactorReacto...

2019-08-30 16:15:47 208

原创 libevent源码分析(四) 事件event

libeventlibeventlibevent是基于事件驱动的。从其名字也可以看出,eventeventevent是整个libeventlibeventlibevent框架的核心。正如在libevent源码分析(二) Reactor模式中提到,eventeventevent是ReactorReactorReactor模式中的事件处理组件:提供了函数接口,当有事件发生时,会调用相应的接口执行事件处...

2019-08-21 16:58:16 179

原创 【Leetcode】23. 合并K个排序链表

合并 kkk 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解1:利用合并两个有序链表的思想,对KKK个排序链表顺序合并/** * Definition for sing...

2019-07-22 15:01:09 114

原创 【Leetcode】21. 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解:新建一个链表,比较两个链表值的大小,将小的一方加入到新链表,返回新链表/** * Definition for singly-linked list. ...

2019-07-22 14:34:19 124

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

给定一个链表,删除链表的倒数第 nnn 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 nnn 保证是有效的。解:newnewnew一个新头节点指向当前头节点headheadhead,然后让一个指针从新头节点出发走n+1...

2019-07-21 15:13:00 110

原创 【Leetcode】15.三数之和 【排序+双指针】

给定一个包含 nnn 个整数的数组 numsnumsnums,判断 numsnumsnums 中是否存在三个元素 $a,b,c $,使得 a+b+c=0?a + b + c = 0 ?a+b+c=0?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0...

2019-07-21 14:59:55 150

原创 【Leetcode】11. 盛最多水的容器 【双指针】

给定 nnn 个非负整数 a1,a2,...,ana1,a2,...,ana1,a2,...,an,每个数代表坐标中的一个点 (i,ai)(i, ai)(i,ai) 。在坐标内画 nnn 条垂直线,垂直线 iii 的两个端点分别为 (i,ai)(i, ai)(i,ai) 和 (i,0)(i, 0)(i,0)。找出其中的两条线,使得它们与 xxx 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜...

2019-07-21 14:49:44 164

原创 【Leetcode】4. 寻找两个有序数组的中位数 【二分】

给定两个大小为 mmm 和 nnn 的有序数组 nums1nums1nums1 和 nums2nums2nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m+n))O(log(m + n))O(log(m+n))。你可以假设 nums1nums1nums1 和 nums2nums2nums2 不会同时为空。示例 111:nums1 = [1, 3]num...

2019-07-21 10:13:37 115

原创 libevent源码分析(三) 源代码文件组织结构

打开下载好的libeventlibeventlibevent源文件夹,会发现其所有的源文件都在此目录下;代码分类大致分为头文件、内部使用的头文件、辅助功能函数、日志、libeventlibeventlibevent 框架、对系统 I/OI/OI/O 多路复用机制的封装、信号管理、定时事件管理、缓冲区管理、基本数据结构和基于 libeventlibeventlibevent 的两个实用库等几个部分。...

2019-07-17 16:04:34 219

原创 libevent源码分析(二) Reactor模式

由于libeventlibeventlibevent本身就是一个ReactorReactorReactor,所以了解ReactorReactorReactor这样一个应用于服务端的开发设计模式很有必要。1.ReactorReactorReactor模式借由WikipediaWikipediaWikipedia上的解释:"The reactor design pattern is an eve...

2019-07-17 15:58:58 226

原创 libevent源码分析(一) 安装libevent

安装LibeventLibeventLibevent在官网上下载libeventlibeventlibevent安装包(此处用的2.0.22版本):http://Libevent.org/在当前目录下解压安装包:tar -zxvf libevent-2.0.22-stable.tzr.gzcd libevent-2.0.22-stable配置安装库的目标路径:./configure...

2019-07-17 15:41:36 155

原创 【Leetcode】第4场双周赛

1118. 一月有多少天指定年份 YYY 和月份 MMM,请你帮忙计算出该月一共有多少天。示例 111:输入:Y = 1992,M = 7输出:31示例 222:输入:Y = 2000, M = 2输出:29示例 333:输入:Y = 1900, M = 2输出:28解:判断是否为闰年,输入月份对应的天数即可class Solution {public: i...

2019-07-13 23:50:57 216

原创 【python】奥特曼打小怪兽文字游戏

设计基本思路:设置一个抽象类(FighterFighterFighter),用来初始化奥特曼与小怪兽的基本属性(name,hpname,hpname,hp);同时设置一个抽象类方法(attackattackattack),奥特曼与小怪兽对象皆可重载该方法设置自己的攻击方法;设置一个alivealivealive函数用于判断对象的hphphp设置一个奥特曼类,继承自FighterFighter...

2019-07-11 15:53:14 1649

原创 【Leetcode】2.两数相加 【链表】

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 000 之外,这两个数都不会以 000 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...

2019-07-05 09:56:00 243

原创 【Leetcode】1.两数之和 【map】

给定一个整数数组 numsnumsnums 和一个目标值 targettargettarget,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以...

2019-07-05 09:50:20 183

原创 【python】tkinter绘制简易计算器

题目:使用tkintertkintertkinter绘图库,绘制一个简易计算器。(1)导入头文件:from tkinter import * #tkinter库import tkinter.font as tkFont #导入font,用于修改输入字体大小from functools import partial #导入partial函数,用于修改控件的默认配置(2...

2019-06-04 16:00:02 3749

原创 【python】turtle绘制五角星

题目:利用turtle绘制五角星,并将内部填充为红色。import turtlet=turtle.Pen() #获得画笔t.hideturtle() #隐藏海龟t.fillcolor("red") #设置填充颜色为红色t.begin_fill() #开始填充for x in range(1, 6): t.forward(100) t.left(216) ...

2019-06-04 15:10:58 8390

原创 编程之美(七)光影切割问题

#include <iostream>using namespace std;#define Left 0#define Right 9typedef struct node { double x1, y1, x2, y2;}line;line test_lines[] = {{1, 1, 2, 2}, {0, 3, 9, 2}, {0, 4, 9, 7}, {...

2019-05-22 16:55:50 260

原创 编程之美(六)饮料供货

在微软亚洲研究院上班,大家早上来的第一件事是干啥呢?查看邮件?NoNoNo,是去水房拿饮料:酸奶,豆浆,绿茶、王老吉、咖啡、可口可乐……(当然,还是有很多同事把拿饮料当做第二件事)。管理水房的阿姨们每天都会准备很多的饮料给大家,为了提高服务质量,她们会统计大家对每种饮料的满意度。一段时间后,阿姨们已经有了大批的数据。某天早上,当实习生小飞第一个冲进水房并一次拿了五瓶酸奶、四瓶王老吉、三瓶鲜橙多时...

2019-05-21 15:43:58 365

原创 编程之美(五)快速找出故障机器

关心数据挖掘和搜索引擎的程序员都知道,我们需要很多的计算机来存储和处理海量数据。然而,计算机难免出现硬件故障而导致网络联系失败或死机。为了保证搜索引擎的服务质量,我们需要保证每份数据都有多个备份。简单起见,我们假设一个机器仅存储一个标号为ID的记录(假设ID是小于10亿的整数),假设每份数据保存两个备份,这样就有两个机器存储了同样的数据。1.在某个时间,如果得到一个数据文件ID的列表,是否能...

2019-05-20 19:12:37 227

原创 编程之美(四)买书问题

题目:在节假日的时候,书店一般都会做促销活动。由于《哈利波特》系列相当畅销,店长决定通过促销活动来回馈读者。上柜的《哈利波特》平装书系列中,一共有五卷。假设每一卷单独销售均需888欧元。如果读者一次购买不同的两卷,就可以扣除555%的费用,三卷则更多,假设具体折扣的情况如下:本数折扣25%310%420%525%在一份订单中,根据购买的卷数及...

2019-05-18 22:26:08 375

原创 编程之美(三)一摞烙饼的排序

星期五的晚上,一帮同事在希格玛大厦附近的“硬盘酒吧”多喝了几杯。程序员多喝了几杯之后谈什么呢?自然是算法问题。有个同事说:“我以前在餐馆打工,顾客经常点非常多的烙饼。店里的饼大小不一,我习惯在到达顾客饭桌前,把一摞饼按照大小次序摆好——小的在上面,大的在下面。由于我一只手托着盘子,只好用另一只手,一次抓住最上面的几块饼,把它们上下颠倒个个儿,反复几次之后,这摞烙饼就排好序了。我后来想,这实际上是个...

2019-05-17 19:57:29 362

原创 编程之美(二)中国象棋将帅问题

如下图将 被限制于{d10,f10,d8,f8d_{10}, f_{10}, d_8, f_8d10​,f10​,d8​,f8​}组成的正方形中,帅 被限制于{d3,f3,d1,f1d_3, f_3, d_1, f_1d3​,f3​,d1​,f1​}组成的正方形中,要求将和帅不能照面,给出将和帅的所有合法位置;如果没有特别的要求,那么应该用一个双重循环即可搞定,但题目中给出限制:只能使用一个字...

2019-05-16 20:59:51 151

原创 【图解HTTP】学习笔记

1. 与HTTP关系密切的协议:IP、TCP、DNS(1)IPIPIP位于网络层,作用是把各种数据包传送给对方IPIPIP地址指明了节点被分配的地址,MACMACMAC地址是指网卡所属的固定地址,IPIPIP地址可以和MACMACMAC地址进行配对使用ARPARPARP协议凭借MACMACMAC地址进行通信:ARPARPARP协议用以解析地址,根据通信方的IPIPIP地址就可以反查出对应...

2019-05-16 17:39:03 421

原创 编程之美(一)CPU占用率控制

控制CPU占用率为50%#include <iostream>#include <windows.h>using namespace std;int main() { for (;;) { for (int i = 0; i < 96000000; ++i); Sleep(10); } return 0;...

2019-05-15 16:10:31 938

原创 【Leetcode】第95场周赛(前三题)

876. 链表的中间结点给定一个带有头结点 headheadhead 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 111:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:...

2019-05-15 15:17:51 160

原创 【Leetcode】第136场周赛 (前三题)

5055. 困于环中的机器人在无限的平面上,机器人最初位于 (0,0)(0, 0)(0,0) 处,面朝北方。机器人可以接受下列三条指令之一:&quot;G&quot;&quot;G&quot;"G":直走 111 个单位&quot;L&quot;&quot;L&quot;"L":左转 909090 度&quot;R&a...

2019-05-13 22:33:09 186

转载 哈希表心得

出自陈皓博客《哈希表心得》,链接:http://blog.csdn.net/haoel/article/details/2863我们知道,哈希表是一个固定大小的数组,数组的每个元素是一个链表(单向或双向)的头指针。如果KeyKeyKey一样,则在一起,如果KeyKeyKey不一样,则不在一起。哈希表的查询是飞快的。因为它不需要从头搜索,它利用KeyKeyKey的“哈希算法”直接定位,查找非...

2019-05-11 16:36:56 1431

原创 二叉树的遍历(递归与非递归、层次)

递归遍历1.先序遍历:根、左、右void Preorder(TreeNode* root) { if (root) { pre_ans.push_back(root->val); if (root->left) Preorder(root->left); if (root->right) Preorder(root-&g...

2019-05-11 15:32:31 184

原创 【Leetcode】第135场周赛

1037. 有效的回旋镖回旋镖定义为一组三个点,这些点各不相同且不在一条直线上。给出平面上三个点组成的列表,判断这些点是否可以构成回旋镖。示例 1:输入:[[1,1],[2,3],[3,2]]输出:true示例 2:输入:[[1,1],[2,2],[3,3]]输出:false提示:1. points.length == 32. points[i].length == 2...

2019-05-07 17:14:45 317

原创 【Leetcode】第132场周赛

1025. 除数博弈爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 NNN 。在每个玩家的回合,玩家需要执行以下操作:选出任一 xxx,满足 0&lt;x&lt;N0 &lt; x &lt; N0<x<N 且 NNN % x==0x == 0x==0 。用 N−xN - xN−x 替换黑板上的数字 NNN 。如果玩...

2019-05-03 15:35:15 160

原创 【Leetcode】63. 不同路径 II 【动态规划】

一个机器人位于一个 m∗nm * nm∗n 网格的左上角 (起始点在下图中标记为“StartStartStart” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“FinishFinishFinish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 111 和 000 来表示。说明:mmm 和 nn...

2019-05-03 14:45:02 135

空空如也

空空如也

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

TA关注的人

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