自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DrawnBreak

接受现实的基础上,向未来进发

  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode 74. Search a 2D Matrix 二维有序数组中找数字

剑指offer上的原题要点就是从右上角开始查找如果target比该值小说明该值往下都大于target, 故该值往下所有元素舍弃如果target比该值大说明该值往左的元素都小于target,故该值往左的所有元素舍弃直到找到该值或者越界不存在。class Solution {public: bool searchMatrix(vector<vector<int>>&a...

2018-02-26 21:00:14 194

原创 73. Set Matrix Zeroes 尽可能小的空间复杂度问题

题意:如果二维数组中有1个0, 则把那一行和那一列都变为0要求空间复杂度小于O(m + n)于是我的方法是O(m)空间复杂度每次遍历1行,如果发现是0,就把  列清零flag[列号]  置1如果那一行发现过0,则整行清0全部行都这样处理后,再对列进行处理,如果flag为1,就清零class Solution {public: void setZeroes(vector<vector...

2018-02-26 20:47:47 252

原创 MYSQL快速复习笔记

显示当前所有的可用数据库SHOW DATABASE;    显示当前数据库内可用表SHOW TABLES ;显示某个表中的所有属性信息SHOW COLUMNS FORM 表名SHOW STATUS 显示广泛的服务器状态SHOW CREATE DATABASE/TABLE  显示创建库或表的SQL语句是啥SHOW GRANTS 显示授权用户SHOW ERRORS SHOW WARNINGS  显示服...

2018-02-25 00:20:58 348

原创 APUE读书笔记——高级进程通信(管道)

假设我们要将一个文件的数据,通过more程序来显示但不希望建立临时文件, 即先复制整个文件,再用more来展示我们可以把文件的数据塞入一个管道,  more程序(由子进程excel启动)读这些数据,并显示在屏幕上和直接more一个文件有啥区别???#include "apue.h"#include <sys/wait.h>#define DEF_PAGER "/bin/more"...

2018-02-24 21:45:35 285

原创 APUE读书笔记——线程同步(条件变量,屏障)

什么是同步? 就是让线程之间按照一定的顺序去执行,例如线程A生产了一个物品,线程B才可以去执行消费。为什么不能直接用锁去做同步?例如设定锁X,锁Q线程B要消费一个物品,则对生产队列做检查(先对队列加锁保护),即对X加锁,若X已被锁,则阻塞。即 加锁Q   加锁X  消费    解锁Q  当线程A生产了一个物品时, 将锁X解锁, 线程B唤醒,开始消费。即 加锁Q  生产  解锁X   解锁Q但是这有...

2018-02-24 14:16:31 255

原创 LeetCode 71. Simplify Path 求绝对路径,字符串处理题

字符串 处理题注意以下几点即可:     ////  即连续的/    /...    则...是目录名或文件名,而非..和.   空的输入,为/class Solution {public: string simplifyPath(string path) { vector<string> spath; string sdir; ...

2018-02-24 12:43:18 187

原创 LeetCode 64. Minimum Path Sum 二维路线最短路径

这里直接用的是二维,每次判断左边小,还是上边小,然后做dp。#define INF 0x7ffffffclass Solution {int pathl[1000][1000]; public: int minPathSum(vector<vector<int>>& grid) { int m = grid.size(), n =...

2018-02-24 10:49:00 424

原创 APUE读书笔记——线程互斥(互斥量、读写锁)

这里以文件的引用计数做例子。什么是引用计数?    即指向这个文件的链接数。 只有当引用计数为0时,才能删除该文件,否则每一次删除仅仅是i节点的引用计数减一。如果不引入锁, 那么当同时执行两次引用计数相减时,就会出现计数不准确的情况。一、简单的锁操作#include "apue.h"#include <pthread.h>#include <stdlib.h>str...

2018-02-23 22:11:05 407

原创 APUE学习笔记——线程创建和退出

一、线程的创建这个程序让主进程 启动一个线程,  主进程和线程都打印一次 PID(进程ID)和TID(线程ID)。#include "apue.h"#include <pthread.h>pthread_t ntid;void printids(const char *s){ pid_t pid; pthread_t tid; pid = getpid(); /...

2018-02-23 20:54:58 269

原创 LeetCode 63. Unique Paths II 带障碍的求终点路径数量

起点的可行路径数量为1.接着从上往下,从左往右遍历每个点。从起点到每个点的可行路径数量  = 左边点的可行路径数量 + 上边点的可行路径数量若该点为1,则可行路径数量为0则最终可知结果。复杂度为O(m*n)class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& ob...

2018-02-23 15:33:15 453

原创 LeetCode 62. Unique Paths 组合数的计算

class Solution {public: int uniquePaths(int m, int n) { m--;n--; int cdown = m + n; int cup = m < n?m : n; int k =cup; long long ans = 1;; while...

2018-02-23 13:19:00 153

原创 LeetCode 61. Rotate List 链表的右循环

简单的链表题,注意题意就行,是右循环。先遍历到最后一个节点,计算出链表总长。并用栈去保存遍历过的点。我们将最后一个节点移动到第一个点并利用栈去获取他的上一个点,继续循环操作。注意k>链表总长的情况此时应该取k = k%len/** * Definition for singly-linked list. * struct ListNode { * int val; * ...

2018-02-22 23:18:02 148

原创 TinyHttp学习(二): 代码分块解释以及相关问题

源码见:这里我们按照时间线性过程来描述整个代码过程,并在每一块提出一个问题,来解答为什么要这么选择。一、建立Listen监听我们启动服务器程序,进入main函数则我们先建立了服务器的监听,便于与即将来到的请求启动TCP连接。  建立监听的函数为startupint startup(u_short *port){ int httpd = 0; struct sockaddr_in name;...

2018-02-22 21:38:07 311

原创 TinyHttp学习(一): 基础知识学习和该项目的需求

TinyHttp是一个非常棒的学习项目, 短短500行便实现了一个轻量级的HTTP服务器,对于我们学习网络编程和HTTP非常有帮助。这里先提供一下学习该项目必备的基础知识,着重面向对HTTP和socket编程毫无概念的新手朋友们。一、HTTP协议基础    1.HTTP消息格式通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一...

2018-02-22 21:00:48 615

原创 C++笔记整理

把自己印象笔记中所记录的一些C++知识点整合了一下,可用于面试前对C++知识的快速回顾。不过并不全,只是自己笔记中的摘要,重要的还是系统和踏实地学习。每个知识点不分顺序。1.typeid是什么typeid用于类的类型检查检查是否是同一类型一般用于指针类D d;C *p=d;typeid(*p)==typeid(D)则满足返回类型是type_info2.define的一些注意点#define a 1...

2018-02-18 14:33:28 277

转载 【转载】 C++和java的区别

 Java从诞生起就一直和C++有着密不可分的关系,但是Java和C++之间还是存在着细微的差别的,这些差别一方面体现了Java在优化C++语言方面做出,那么本文就谈谈C++和Java之间那些区别,笔者假设你对C++有一定程度的认识。本文的组织思路是首先是对两者相似的语法规则上进行对比,然后在针对两种语言特有的语法规则进行对比。1.从数据类型上  Java是一种强类型语言只有八种基本的数据类型,分...

2018-02-18 14:13:48 179

原创 LeetCode 60. Permutation Sequence 全排列的第k个

求n位数的第k个全排列利用 n个数字的全排列为n!我们从第一个开始选假设n =3。k=5"123""132""213""231""312""321"我们要确定第一位数是什么。我们知道2的阶乘是 2即每次跨越2个。所以(5-1)/2=2即我们跨越了2个 2则所选数字为 第3个可选数字(用vis去查找可选数字)注意最后一个数字要单独去找。class Solution {public:

2018-02-17 21:22:06 406

原创 LeetCode 56. Merge Intervals 合并交叉区间

合并交叉的区间这题的话,我先排序, 再去一一合并合并原则:如果当前区间的start,   比ans中最后一个区间的 end大        则肯定不需要合并,直接收入ans否则    若当前区间的end,比ans中最后一个区间的end小           则不需要操作,因为这个区间已经被“包含”了    否则, 将ans中最后一个区间的end修改。/** * Definition for an...

2018-02-17 20:27:49 220

原创 LeetCode 55. Jump Game 位置跳跃

当前位置的值 代表你最远能跳多远问能否从起点跳到终点。实现很简单,每次维护一个MaxIndex即可,如果当前坐标比MaxIndex大,说明GG了class Solution {public: bool canJump(vector<int>& nums) { int farIndex = 0; int i ; for(i...

2018-02-17 19:56:08 160

原创 Unix高级编程《APUE》读书笔记——思维导图形式

终于看完unix高编了,试着利用XMind去记录看到的知识点,避免遗忘,算是自己的一个尝试吧。后面再补上对代码的思考和笔记。

2018-02-17 17:49:23 1144 2

原创 LeetCode 49. Group Anagrams Map应用和sort应用

题意很简单,,,就是把字母种类数量相同的字符串归并到一组中。这里用map去区分是否为一组即可,并为每一组设置一个index。注意:如果出现reference binding to null pointer of type ‘value_type’”  这个报错一般是数组下标的问题。这题里我忘记给vector<vector<string>> ans  赋空间。ans.push...

2018-02-17 17:26:55 213

原创 LeetCode 48. Rotate Image 二维矩阵90度翻转问题,坐标推算,空间利用

题意: 90度翻转二维矩阵,且要求额外空间开销尽可能地小。思路:弄清楚90度翻转时,每个点翻转的规律即可假设该点的行列坐标为  (x, y)则翻转后他的位置为  (y,n-1-x)而这里要求空间开销小,即不应重建一个新矩阵。则我们应当一个个点去翻转。我用num1存当前点的值,num2为翻转后位置处的值令下一点值 = 当前的值接着继续这个过程,进行4次后, 一次翻转完毕,一次翻转 翻转了4个数字。注...

2018-02-17 16:37:05 202

原创 leetcode 47. Permutations II DFS应用

与上题不同的是,这次全排列中有相同的数字出现。解决方式要基于对DFS的理解(类似于一颗树)其实就是在树的某一层选择右边的节点时,若该节点与“在这一层时,上一次的选择”相同,则跳过。即在同一个层次时,不选重复的值。class Solution {public: vector<vector<int>> Ans; vector<int> vis; ...

2018-02-16 20:27:21 126

原创 LeetCode 46. Permutations

题意:生成这个数组的全排列简易版:用next_permutation函数class Solution {public: vector<vector<int>> permute(vector<int>& nums) { vector<vector<int>> ans; sort(nums.b...

2018-02-16 19:56:29 99

原创 Git的学习总结

★Git的安装 yum -y install git       安装 git config --global user.name "Lishaoxiao" 设置机器名 git config --global user.email "[email protected]" 设置机器邮箱★版本库的建立 新建目录 mkdir MyGit将目录变为Git仓库 git i...

2018-02-09 14:11:17 236

unp.h源码(CentOS上可无错编译)

修改过一些带有编译错误问题的unp.h源码,可在CentOS的服务器上编译,不需要再修改。编译过程如下: tar -zxvf unpv13e.tar.gz rm -y unpv13e.tar.gz cd unpv13e cd lib make cd ../libfree make cd .. cp libunp.a /usr/lib cp lib/unp.h /usr/include cp config.h /usr/include 具体可参见: http://blog.csdn.net/a799581229/article/details/79085925

2018-01-17

空空如也

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

TA关注的人

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