- 博客(25)
- 收藏
- 关注
原创 git入门
git init 初始化一个git仓库git add <file> 将文件添加到仓库git commit -m <message> 将文件提交到仓库(message是本次提交注释)git status 查看仓库当前状态git diff 查看differencegit log 命令查看历史记录...
2019-04-25 19:19:55 157
原创 什么是cdn
1.什么是cdn cdn全称是内容分发网络。其目的是让用户能够更快速的得到请求的数据。简单来讲,cdn就是用来加速的,他能让用户就近访问数据,这样就更更快的获取到需要的数据。举个例子,现在服务器在北京,深圳的用户想要获取服务器上的数据就需要跨越一个很远的距离,这显然就比北京的用户访问北京的服务器速度要慢。但是现在我们在深圳建立一个cdn服务器,上面缓存住一些数据,深圳用户访问时先访问这个cd...
2018-06-26 12:30:00 12882 3
原创 leetcode 19. 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:首先想到的是先扫描一次链表,得到链表的length,这样倒数第n个节点就是第length...
2018-05-15 22:58:10 262
原创 leetcode 15.最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).思路:和上一题三数之和的思路基本一样,维护一个r...
2018-05-15 22:22:10 315
原创 leetcode 15.三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]思路:首先想到的是排序数组两数之和...
2018-05-15 22:04:56 169
原创 leetcode 14.最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路:
2018-05-11 15:31:10 614
原创 leetcode 13.罗马数字转整数
罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做...
2018-05-11 15:16:39 379
原创 leetcode 12.整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写...
2018-05-11 14:46:51 1664
原创 leetcode 11.盛水最多的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。注意:你不能倾斜容器,n 至少是2。思路:首先想到的是直接用两个循环,计算所有的点构成容器大小,然后选出最大值,但是这样时间复杂度是On^2,时间超限。优...
2018-05-11 13:55:20 458
原创 leetcode 6.Z字形变换
将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = "PAYPALISHIRING", numRows ...
2018-05-07 21:19:54 258
原创 leetcode 8.字符串转整数(atoi)
实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一个非空字符序列不是个...
2018-05-07 20:53:21 176
原创 leetcode 5.最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路:以i位置为中心像两边扩散,如果当前子串是回文串则继续扩散,如果不是子串则当前字符串就是以i为中心的最长回文子串。注意回文字符串分奇数和偶数两种情况。class Solu...
2018-05-07 20:34:56 154
原创 leetcode 9.回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字...
2018-05-06 22:59:17 131
原创 nginx的数据结构
整型 nginx使用ngx_int_t和ngx_uint_t封装有符号整型和无符号整型。ngx_str_t数据结构 在nginx中ngx_str_t结构就是字符串,但是它与普通字符串有些不一样,它不是以/0结尾的。而是通过一个len来指明字符串长度。所以如果将ngx_str_t类型当作字符串来使用,很可能会造成内存越界。但是这样做的好处是:可以有效的降低内存的使用量,例如:将用户请求“...
2018-05-06 17:02:53 216
原创 nginx用作反向代理服务器
反向代理方式是指用代理服务器来接受internet上的连接请求,然后将请求转发给内部网络中的上游服务器。一般的反向代理服务器的工作方式是一边接收客户端请求一边转发到上游服务器,而nginx当收到客户端请求时并不会立刻转发到上游服务器,而是先把用户请求完整的接受到nginx所在服务器的硬盘或内存中,再向上游服务器发起连接转发请求。这样做的缺点时延长了一个请求的处理时间,并且增加了用于缓存请求...
2018-05-06 13:05:45 306
原创 nginx配置的通用语法
1.块配置项 块配置项由一个块配置项名和一对大括号组成。例如: events{ ...}http{ upstream backend{ server 127.0.0.1:8080; } gzip on;} 上面的代码中,events,http,upstream等都是块配置项。块配置项一定会用大括号把一系列的所属配置项全包含...
2018-05-06 12:43:04 1624
原创 ngin进程间的关系
nginx的进程数量可以通过配置文件来部署,在正式的生产环境中,nginx通常使用一个master进程来管理多个worker进程,一般情况下worker进程的数量等于服务器cpu的核心数。在这种情况下,每个worker进程都是繁忙的,他们在真正的提供互联网服务,而master进程则很清闲,只负责监控worker进程。 多个worker进程处理互联网请求不但可以提高服务的健壮性,因为一...
2018-05-06 11:47:39 226
原创 linux中的同步方法
自旋锁 自旋锁最多只能被一个可执行线程持有,如果一个执行线程试图获得一个已经被持有的自旋锁,那么该线程就会一直进行循环—旋转—等待锁重新可用。一个被争用的自旋锁使得请求它的线程在等待锁重新可用时自旋,这样就特别浪费处理器时间,所以自旋锁不应该被长时间持有,相比于互斥锁,互斥锁会让线程阻塞,被阻塞的线程需要换入换出,这样进行上下文切换也会带来一定的开销,因此互斥锁一般适用于持锁时间更长的情况。...
2018-05-05 22:48:19 388
原创 leetcode 3.无重复字符的最长字串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。1.普通版——复杂度O(2n) 采
2018-05-05 15:05:02 149
原创 leetcode 2.两数相加
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807链表上的数相加,类似的题可以是字符串的数相加,大数相加...
2018-05-05 13:25:44 178
原创 leetcode 1.两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:先将数组遍历一遍,将nums的值和对应下标存入map,再遍历一次数组,然后直接从map中找到key=t...
2018-05-05 12:47:29 136
原创 linux的进程调度
多任务操作系统 多任务操作系统就是能同时并发地执行多个进程的操作系统。多任务系统可以分为两类:非抢占式多任务和抢占式多任务,抢占式多任务是由调度程序来决定什么时候停止一个进程的运行,进程在被抢占之前能够运行的时间是预先设置好的,这个时间就叫进程的时间片。非抢占式多任务则只能通过进程自己主动停止运行。常用调度算法1.先来先服务算法(FCFS) FCFS是最简单的调度算法,每次调度是从就绪...
2018-05-03 23:51:37 364
原创 linux的进程管理
1.什么是进程 进程就是处于执行期的程序,但是进程不仅仅局限于一段可执行的程序代码,通常还包括其它的资源,像打开的文件,处理器的状态,地址空间等。简而言之,进程=运行中的程序+相关资源 如果说进程是操作系统的最小资源分配单位,那么线程就是最小执行单位。内核调度的对象是线程而不是进程,线程有自己独立的程序计数器,进程栈和一组进程寄存器。2.进程描述符及任务队列 进程描述符——pcb...
2018-05-02 23:45:53 137
原创 Linkcode 66.二叉树的前序遍历
描述: 给出一棵二叉树,返回其节点值的前序遍历。样例: 给出一棵二叉树 {1,#,2,3},1 \ 2 / 3 返回 [1,2,3]递归法:class Solution {public: /* * @param root: A Tree * @return: Preorder in ArrayList which co
2017-11-17 22:28:51 250
原创 Linkcode 97. 二叉树的最大深度
描述: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的距离。样例: 给出一棵如下的二叉树: 1 / \2 3 / \ 4 5这个二叉树的最大深度为3.解决方案:``class Solution {public: /* * @param root: A Tree * @return: Pre
2017-11-17 20:07:19 153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人