自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 bind(0)导致的临时端口用尽引发的思考(IP_BIND_ADDRESS_NO_PORT)

tips:本文使用的Linux源码版本为3.10.20,最新的版本已经对本文描述的问题做了优化。 tips:本文不讨论扩大Linux可用端口范围、SO_REUSEADDR、SO_REUSEPORT等优化方法,仅讨论patch:https://git.kernel.org/pub/scm/linu...

2018-09-27 17:31:16 1981 0

原创 记录一个诡异的函数调用返回错误的指针bug

//main.c#include "test.h" void main(){ S* s = get_struct_s(); printf("%s\n",s->name); return 0; }//test.h type...

2018-05-30 15:20:33 145 0

原创 编译错误storage class specified for parameter XXX

考虑如下两个头文件test.h和main.h//test.h #include<stdio.h> void add(int a, int b)//main.h#include"test.h"typedef struct A_{ int...

2018-02-26 09:09:47 9697 0

转载 SQL Injection绕过技巧

来源:https://www.cnblogs.com/joy-nick/p/5774462.html0x00 sql注入的原因sql注入的原因,表面上说是因为 拼接字符串,构成sql语句,没有使用 sql语句预编译,绑定变量。但是更深层次的原因是,将用户输入的字符串,当成了 “sql语句” 来执行...

2018-02-19 11:55:58 263 0

原创 实验吧---简单的登陆题(CBC字节翻转攻击)

具体原理就不介绍了,百度上很多,直接放代码。因为用python3执行pcat大神的脚本出现很多语法和编码问题,所以打算用php脚本重写一遍攻击过程。第一步:填写0 2nion select * from((select 1)a join (select * from you_want)b join...

2018-02-18 20:43:27 3383 2

原创 windows php7添加openssl支持

网上有许多教程,但是如果下载的是php7的压缩包,解压后需要重命名目录下的php.ini-production为php.ini,并拷贝到C:\windows。然后再照着其他教程在php.ini中进行关于openssl支持的修改。...

2018-02-18 11:12:38 2638 0

原创 初识Linux栈溢出攻击

初识Linux栈溢出攻击0x00 限定条件1、关闭aslr(Address Space Layout Randomization)   开启aslr后,应用程序或动态链接库装载时,系统会随机设定其装载基址。这样就避免了攻击者事先预知特定函数的入口地址。ubuntu下的关闭命令为echo 0 >...

2017-10-21 16:08:21 491 0

原创 C++多态:深入CRTP,理解编译期的多态

虚函数带来的额外CPU消耗 考虑如下的代码:class D { public: int num; D(int i = 0) { num = i; } virtual void print() { cout << "I'm a D. my nu...

2017-06-08 11:20:51 399 0

转载 Likes Dislike Improving Performance in C++ with Compile Time Polymorphism

来源:https://www.gamedev.net/resources/_/technical/general-programming/improving-performance-in-c-with-compile-time-polymorphism-r2015Virtual functions...

2017-06-08 08:57:06 212 0

原创 C++多态:深入虚函数,理解晚绑定

C++的多态特性是通过晚绑定实现的。晚绑定(late binding),指的是编译器或解释器程序在运行前,不知道对象的类型。使用晚绑定,无需检查对象的类型,只需要检查对象是否支持特性和方法即可。  在C++中,晚绑定通常发生在使用virtual声明成员函数时。此时,C++创建一个虚函数表,当某个...

2017-05-26 09:34:39 492 0

原创 STL:深入mem_fun

mem_fun所用的模板的具体化 仿函数是一种具有函数特质的对象,由于内部重载了括号操作符(),所以调用者可以像使用函数一样使用仿函数。  mem_fun()是一个适配器(adapter),该函数能将类的成员函数包装成仿函数使用,于是成员函数可以搭配各种泛型算法完成所谓的多态调用。  具体例子如下...

2017-05-24 18:32:23 542 0

转载 MongoDB是如何实现事务的ACID?

原文地址:http://www.ywnds.com/?p=6386&viewuser=33 MongoDB ACID事务支持 这里要有一定的关系型数据库的事务的概念,不然不一定能理解的了这里说的事务概念。 下面说一说MongoDB的事务支持,这里可能会有疑惑,前面我们在介绍Mon...

2017-05-09 19:02:51 9394 0

翻译 MongoDB_Architecture_Guide(MongoDB架构指导个人翻译)

完整文档见我的资源:http://download.csdn.net/detail/popvip44/9830094 “MongoDB并不是一个闭门造车得到的产物。我们基于我们自己设计大规模,高实用性,稳定系统的经验,构建了MongoDB。我们并不是从头开始设计,而是在已有的系统中找到被破坏的地...

2017-05-01 17:19:05 389 0

原创 sqlite锁机制概述

sqlite的锁的粒度比较粗,是数据库级别的,也就是说即使只是对某个页进行读写操作,sqlite也会封锁整个数据库。这种策略降低了读-写事务和写-写事务间的并发程度,但是大大简化了程序设计,减小了整个程序的大小。所以,sqlite的适用场景为:较少次写入数据,大量、多次读出数据。这也是sqlite...

2017-04-04 11:08:37 2078 0

原创 索引并发(蟹行协议和B-Link树)

索引并发事务的并发问题可以通过两阶段封锁协议(2PL)或者多版本并发控制(mvcc)等方法解决。这些方法也同样适用于索引的并发访问控制。但是,由于索引访问频繁,它们将成为封锁竞争的集中点,导致低并发度。对事务而言,对一个索引查找两次,并在期间发现索引结构发生变化,这是完全可以接受的,只要索引查找返...

2017-02-26 20:54:27 1093 0

转载 SQLite剖析之事务处理技术

原文章地址:http://www.cnblogs.com/5211314jackrose/p/5818124.html 前言   事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等。在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率。假...

2017-02-09 16:51:07 757 0

原创 事务并发控制

一、三类并发问题及四种事务隔离级别首先介绍三类并发问题: 1.脏读:一个事务读到另一个事务未提交的更新数据(A和B事务并发执行,B事务执行更新后,A事务查询B事务没有提交的数据,B事务回滚,则A事务得到的数据不是数据库中的真实数据。也就是脏数据,即和数据库中不一致的数据)。 2.不可重复读...

2017-02-08 19:07:16 389 0

原创 K-th Smallest in Lexicographical Order

依次逐渐确定前缀,每次计算当前前缀下不超过n的个数,若个数超过k,则说明第k个数在当前前缀下,反之,则说明在当前前缀加1以后的前缀; 以first为前缀的数 [first,first+1] [first*10,(first+1)*10] [first*100,(first+1)*100...

2017-01-11 14:53:45 272 0

原创 Word Break II

dp+dfs class Solution { private: //DFS path build function void buildPath(vector& isBreakable, string &s, int pos, vector &res, string ...

2017-01-10 11:00:42 163 0

原创 MDB文件分页类型和格式

page1: 0    16    “MDB format 0”   16      4        first freelist page 20      4        number of free pages 24      1        b+树节点类型,0x0d表示叶子节点...

2017-01-08 19:17:39 699 0

原创 Dungeon Game

网上都是从右下角向左上角进行dp的,我想了想,从左上角开始应该也可以,只不过要加边界判断条件(是否碰到dungeon的上边界或者左边界),很麻烦,从右下角开始确实简便了很多 class Solution { public: int calculateMinimumHP(vector > ...

2017-01-08 09:57:11 229 0

原创 Arithmetic Slices II - Subsequence

越往后做题越难了啊,像这种题不看答案根本没头绪 嘛,其实看个几天逐步推导应该也能有个大概思路,可惜最近真的没时间 记个discuss统一认同的答案吧 class Solution { public: int numberOfArithmeticSlices(vector& A) {...

2017-01-07 10:20:00 190 0

原创 Shortest Palindrome

暴力破解思路:补充完成之后的回文串中心必定在原字符串中----原字符串以第一个字符为起点必然存在至少一个回文串(长度可以为1)----找到原字符串中以第一个字符为起点最长的回文串----把剩余部分的翻转补充到原字符串头部。 优化方法: 1、求字符串s的翻转s_rev 2、将两个字符串进行拼接...

2017-01-06 10:05:37 140 0

原创 Longest Valid Parentheses

有效括号子串有很多,不是连续的,所以不是一般的动态规划(一般dp的时间复杂度是O(n^2)),是断开的动态规划,回溯的时候只需要回溯一步 for any longest[i], it stores the longest length of valid parentheses which is e...

2017-01-05 09:49:00 131 0

原创 MDB中cell的格式

cell存储(key, value)键值对,由于MDB目前只支持uint32_t键值和string数据,所以直接在key size中用变整型数据格式存储uint32_t类型的键值key,在data中存储字符串的ascii格式。payload header保存的是包括payload header和d...

2017-01-04 16:59:21 146 0

原创 Find Median from Data Stream

中位数----两个部分----两个堆 贴一份discuss中优雅的代码 class MedianFinder { priority_queue small, large; public: void addNum(int num) { small.push(num); large....

2017-01-04 09:16:04 130 0

原创 Regular Expression Matching

/** * f[i][j]: if s[0..i-1] matches p[0..j-1] * if p[j - 1] != '*' * f[i][j] = f[i - 1][j - 1] && s[i - 1] == p[j - 1] * if p[...

2017-01-03 14:59:44 122 0

原创 Minimum Window Substring

窗口子字符串的一般处理方法是用两个指针夹住子字符串,然后移动遍历,暴力搜索 class Solution { public: string minWindow(string S, string T) { vector srcHash(255,0); // 记录目标字符串每个字母出现次数...

2017-01-02 16:53:39 160 0

原创 Perfect Rectangle

http://www.cnblogs.com/grandyang/p/5825619.html class Solution { public: bool isRectangleCover(vector>& rectangles) { unordered_set st; ...

2017-01-01 09:47:42 136 0

原创 Self Crossing

有三种情况:螺旋扩大  螺旋缩小  先螺旋扩大再螺旋缩小 下面是第三种情况的示意图: +------------+ +---------+ | ...

2016-12-30 11:32:06 177 0

原创 Create Maximum Number

找了一份比较清晰的解释,DP+贪心:https://discuss.leetcode.com/topic/32252/c-dp-greedy-solution-should-be-easy-to-understand/5 最近没空仔细研究了,记录一下二刷的时候认真看看 class Solu...

2016-12-29 10:39:01 110 0

原创 Interleaving String

看到一句话:“When you see string problem that is about subsequence or matching, dynamic programming method should come to your mind naturally. ” cla...

2016-12-27 19:18:50 152 0

原创 Palindrome Pairs

尝试着理解了一下Trie树,原理解释见:https://discuss.leetcode.com/topic/39585/o-n-k-2-java-solution-with-trie-structure-n-total-number-of-words-k-average-length-of-ea...

2016-12-26 19:28:47 144 0

原创 First Missing Positive

O(n)时间复杂度,const space 对于hard的题,时间复杂度有很大可能其实是O(kn)或者O(n+logn),const space要不是原地排序,要不是在const space中存储大量的信息(这种情况大多数时候是通过数学方法简化原问题推导出来的)  思路:交换数组元素,使得...

2016-12-25 10:32:55 109 0

原创 Basic Calculator

用sign把算术运算符+ -和单个数前的负号分开了 class Solution { public: int calculate(string s) { // the given expression is always valid!!! // only + and - !!! /...

2016-12-22 22:40:09 134 0

原创 The Skyline Problem

multimap, multiset, map, set的底层实现都是红黑树,减少查询时间的同时还可以进行排序,相对于优先队列的优点是可以修改元素,其实优先队列也可以修改元素,只不过修改后需要重新排列一次,discuss中也有很多人用优先队列的,也有一些人用优先队列加哈希表进一步优化时间复杂度 这...

2016-12-21 20:49:10 206 0

原创 Maximal Rectangle

按行划分,构造柱状图,用单调递增栈法求柱状图的最大矩形 我觉得自己不会写得比这位大神通透了,贴上他的两篇博文: http://blog.csdn.net/doc_sgl/article/details/11805519 http://blog.csdn.net/doc_sgl/article...

2016-12-18 22:29:06 113 0

原创 Jump Game II

想到了dfs剪枝,想到了dp有点像用了cache的dfs 但是这两种方法的时间复杂度都太大了 这道题是用贪心解的 重点是贪心方法可行的证明: 对于例子 nums:2   3   1   2   1 倒着从最后往回看,下一步能直接到结尾的有nums[3], nums[1] 假设nu...

2016-12-18 20:28:33 125 0

原创 Copy List with Random Pointer

使用在每个节点后面复制一个节点的方法居然可以把空间复杂度降到const    服 class Solution { public: RandomListNode *copyRandomList(RandomListNode *head) { RandomListNode* iter =...

2016-12-15 19:19:51 143 0

原创 Sudoku Solver

dfs,想了一下思路就去找代码了,最近实在没时间自己写答案了,先记录再这里吧 class Solution { public: void solveSudoku(vector > &board) { util(board, 0); } bool util(vector&...

2016-12-12 10:19:03 123 0

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