自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 lintcode 更新二进制位

给出两个32位的整数N和M,以及两个二进制位的位置i和j。写一个方法来使得N中的第i到j位等于M(M会是N中从第i为开始到第j位的子串)普通的方法显然是将N的i到j位置0,然后与m这样需要操作 j - i 次。考虑优化:优化思路:想办法取得一个mask,其 第 i 位到 第 j 位为 0 ,其他位均为1。使用两个mask: mask1 = 0x80000000, mas

2016-03-20 15:25:12 330

原创 linux 信号signal

signal函数void (* signal(int signo,void (*func)(int))    )(int)函数描述:设置信号signo的处理函数func并返回旧的信号处理函数可将func设为常量:SIG_ERR:SIG_IGN:向内核表示忽略此信号SIG_DEL:信号发生时执行系统默认动作  kill和raise函数#includeint

2015-05-07 23:03:49 330

原创 linux 高级IO 磁盘映射IO

存储映射IO说明:在进程的栈中开辟一块缓冲区将之与磁盘文件相对应,对缓冲区的更改将自动写入磁盘文件,这样就可以不在使用read和write的情况下执行IO mmap函数void* mmap(void* addr, size_t len, int prot, int flag, int filedes, off_t  off )将filedes指向的文件映射到存储区返回值

2015-05-07 23:02:45 384

原创 linux 线程 pthread

pthread.h不是linux默认头文件   编译时应追加参数-lpthread如 g++    11-1.cpp -lpthread  pthread_create函数int pthread_create(pthread_t*   tidp, const pthread_att_t  *  attr ,void* (*func)(void*),void*arg)创建线程

2015-05-07 23:02:11 354

原创 Liunx编程之信号signal

kill函数函数原型:int   kill(pid_t pid,  int signo  )pid>0:向进程pid发送signo信号pid == 0: 。。。。。。。。。。。pid  pid == -1:。。。。。。。。。。。。sigprocmask函数函数原型:int  sigprocmask(int   how,  const     sigset

2015-05-06 23:08:38 273

原创 关于编译器对c++ 类静态成员、静态成员函数、非静态成员函数的处理

静态成员函数:在C++编译器中会把静态成员变量当作全局变量处理,如同全局变量一样将其放在静态、全局变量区(栈区),只不过其可见性限制为类对象区域。非静态成员函数:C++并不会将每个非静态成员函数的代码放在每个类对象中,而是根据类名维护所有的成员函数,当通过某个类对象调用成员函数时会如同调用普通函数一样进行调用,只不过在函数参数列表中添加了一个额外的参数:this指针。

2015-05-06 15:49:56 1119

原创 C++对象模型之数据成员内存布局

提前篇:在内存中类的一个对象中存储的信息并不包括静态成员、成员函数、虚函数。对于静态成员是当作全局变量来处理的,放在全局区,所以可以通过类名直接访问。对于成员函数和静态成员函数也都当作全局函数来处理,通过类名来进行调用,具体细节在另一篇博客说明。对于类的虚函数,类将维持一个一个虚函数表(vtbl),每个表项是一个指向虚函数具体代码的地址。在类的每个对象中将有一个虚函数指针(vptr

2015-04-23 20:05:22 492

原创 C++基本运算符

#include#includeusing namespace std;int main(){ int a = 0, b = 1, c = 2,d = 3, e = 4; a = (b++,c++,d++,e++); //这里a的值为e自增之前的值 cout<<a<<" "<<b<<" "<<" "<<c<<" "<<d<<" "<< e<<endl; a = b++,c+

2015-04-23 16:19:07 307

原创 c++空的class的大小

#include#includeusing namespace std;class A{ //virtual void func(){};};class B{ int b;};class C{ int c; virtual void func(){};};int main(){ cout<<sizeof(A)<<endl;//output 1 cout<<s

2015-04-23 15:31:12 501

原创 C++杂谈

一:函数参数为vector,在函数中为vector添加元素,函数结束后,对vector的更改是无效的。通过vector地址的输出,可以看到传参时确实对vector进行了拷贝。测试代码:void test_vector( vector vec){coutvec.push_back(1);vec.push_back(2);}int main(){ve

2015-04-23 14:21:22 316

原创 leetcode 20题 32题题解报告

针对这两道前后关联的题,在这里给出自己的解法。首先说20题,括号匹配问题。对于括号匹配问题,相信大家都学数据结构应该都学过,使用栈来存储待匹配的括号。在此,为了省事,我没有直接使用STL的内容,而是突发奇想,使用数组来自己实现栈的功能。考虑到对给定的字符串,我们只需维护一个有先后顺序的字符序列来表示当前最需要进行匹配的字符是哪个,就如同使用栈的先进后出特性。我们使用一个数组array来维护

2015-01-29 11:03:08 372

转载 leetcode 5 最长回文串

感谢 鼻子很帅的猪 的讲解。具体算法讲解请进:http://blog.163.com/zhaohai_1988/blog/static/2095100852012716105847112/o(n) o(n)的复杂度,manacher确实碉堡了。代码:class Solution {public: string longestPalindrome(string s) {

2015-01-26 14:22:44 390

原创 leetrcode 3 Longest Substring Without Repeating Characters

思想:利用hash的方法记录某个字符是否重复出现,空间为256个int,然后逐个探测以每个字符开始出现的最大长度,当第K个字符与前面第i个字符重复时则直接从第i+1个字符开始探测最大长度。此种解法为45ms,看到时间排名比较靠后就去看了别人的解法,发现可以进一步优化:当从第i+1个字符开始探测时可以直接从第k+1个字符开始,不必从第i+1个开始。刚开始使用map做hash的实现,发现超时(ma

2015-01-25 21:32:30 408

原创 STL MAP

map是STL的一个容器,和set一样,map也是一种关联式容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据。这里说下map内部数据的组织,map内部是自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。 使用m

2015-01-24 20:59:19 577

原创 leetcode 26题题解

题目比较简单,开始为了省事使用的方法1,看见时间224ms确实有点高,就改成方法二了39ms方法一:对数组从后向前便利,碰见一个重复数组就把后面的元素全部前移,实现比较简单,由于有大量元素移动,时间很长。方法二:对数组从前向后遍历,使用两个变量spst和sped记录数组中的无效元素,start变量循环找到新元素直接放到spst位置。少了大量元素移动,所以比较快。

2015-01-23 15:34:11 585

空空如也

空空如也

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

TA关注的人

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