自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 编辑距离

编辑距离 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入: word1 = "horse", word2 = "...

2020-02-29 22:05:57 398 0

原创 最长上升子序列

最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的...

2020-02-29 17:39:56 408 0

原创 二分查找详解

二分查找详解

2020-02-29 17:38:50 355 0

原创 凑零钱问题

凑零钱问题 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 +...

2020-02-28 17:38:52 778 0

原创 通配符匹配

通配符匹配 给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。 ‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。 两个字符串完全匹配才算匹配成功。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且...

2020-02-25 18:05:56 314 0

原创 公交路线

公交路线 我们有一系列公交路线。每一条路线 routes[i] 上都有一辆公交车在上面循环行驶。例如,有一条路线 routes[0] = [1, 5, 7],表示第一辆 (下标为0) 公交车会一直按照 1->5->7->1->5->7->1->… 的车站路...

2020-02-25 17:52:54 402 0

原创 矩阵中的最长递增路径

矩阵中的最长递增路径 给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例 1: 输入: nums = [ [9,9,4], [6,6,8], [2,1,1] ] 输出: 4...

2020-02-25 15:45:17 603 0

原创 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集) 题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [...

2020-02-25 12:47:57 1612 0

原创 用位运算计算两数的和

用位运算计算两数的和 //方法一: //sum为计算结果 //carry为进位 int bitAdd(int a, int b) { if (b == 0)//当进位为0的时候,就可以返回了 return a; int sum = a ^ b;//计算a和b中不同时为1的位之和,剩下的 ...

2020-02-17 15:45:40 523 0

原创 IO多路转接之epoll

IO多路转接之epoll 一、epool 是为处理大批量句柄而作了改进的pol 1.相关函数 a. int epoll_create(int size); 创建一个epoll的句柄.自从linux2.6.8之后,size参数是被忽略的. 用完之后, 必须调用close()关闭 官方的讲:创建一个...

2020-02-15 10:34:35 1503 1

原创 IO多路转接之poll

IO多路转接之poll 一、Poll 1.函数原型: int poll(struct pollfd *fds, nfds_t nfds, int timeout); 参数 作用 struct pollfd *fds fds是一个poll函数监听的结构列表. 每一个元素中, 包含了...

2020-02-14 21:06:04 1293 0

原创 I/O多路转接之select

I/O多路转接之select 一、五种IO模型 阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式 非阻塞IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK错误码.非阻塞IO往往需要程序员循环的方式反复尝...

2020-02-14 19:29:41 410 0

原创 网络基础(三)

网络基础(三) 一、IP协议 1.基本概念 主机:配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统称; 2.协议头格式 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4. 4位头部长度(h...

2020-02-14 14:50:46 1440 0

原创 网络基础(二)及HTTP协议

网络基础(二)及HTTP协议 一、HTTP协议 1 . 什么是url? 平时我们俗称的 “网址” 其实就是说的 URL 2.http协议的格式 http请求: 首行: [方法] + [url] + [版本] Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示...

2020-02-12 18:43:15 2406 0

原创 TCP协议通讯流程(三次握手及四次挥手)

TCP协议通讯流程(三次握手及四次挥手) 一、服务器端: 调用socket函数,创建一个socket(文件描述符)操作句柄 调用bind函数,把刚创建的socket文件描述符 和 ip及端口 绑定在一起,注意一个进程可以绑定多个端口号,但是一个端口号只能被一个进程绑定bind中进程和端口的关系 ...

2020-02-12 15:09:12 1327 0

原创 网络编程套接字(四)

网络编程套接字(四) 一、实现tcp服务器多用户版本(多进程、多线程、线程池版本) tcp_process_server.hpp #pragma once #include "tcp_socket.hpp" #include <functional> #incl...

2020-02-11 21:19:58 473 0

原创 网络编程套接字(三)

网络编程套接字(三) 一、实现简单的Tcp服务器(单用户) tcp_socket.hpp #pragma once #include <cstdio> #include <cstdlib> #include <cstring> #include <ca...

2020-02-11 15:21:12 1571 0

原创 网络编程套接字(二)

网络编程套接字(二)

2020-02-11 12:15:44 1470 0

原创 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C) 第一种方法: class assist{ public: assist() {N++;sum += N;} static void reset...

2020-02-10 19:22:42 1528 0

原创 AVL树

AVL树 一、AVL树 1 . AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。 因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的...

2020-02-10 18:47:08 411 0

原创 二叉搜索树

二叉搜索树 一、 二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜索树 二、 二叉搜索树操作 二叉搜...

2020-02-10 18:46:21 1637 0

原创 C++中的deque、stack、queue及priority_queue

C++中的deque、stack及queue 一、deque 1.1 . deque的介绍 deque(发音类似“deck”),是双端队列不规则的首字母缩写,双端队列是动态大小的序列式容器,其可 以像两端进行伸缩。 特定的库可以以不同的方式实现deque,但通常都是一种动态数组。不论在何种情况下...

2020-02-10 17:48:49 1553 0

原创 C++中的list

C++中的list 一、list简介 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向 其前一个元素和后一个元素。 list与forward_list非常...

2020-02-10 16:56:32 1635 0

原创 C++中的vector

C++中的vector 一、vector简介 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自 动处理。 ...

2020-02-10 16:29:48 1463 0

原创 C++中的STL

C++中的STL 一、什么是STL 1. STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架 2.STL的发展史 原始版本 Alexander Stepanov、Meng Le...

2020-02-10 15:54:52 1406 0

原创 C++中的模版

C++中的模版 一:范型编程 1.什么是范型编程? 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) { int temp = left; lef...

2020-02-10 14:57:09 1546 0

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