自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

位置不能带来自由,能力才能让人自由

  • 博客(59)
  • 收藏
  • 关注

原创 Minimum Window Substring

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).For example,S = "ADOBECODEBANC"T = "ABC"Minimum window is "BANC"

2015-09-30 16:45:06 338

原创 360笔试--找老乡

#include #include #include #include #include #include #include #include #include using namespace std;struct relation{ relation(int x, int y) { x_ = x; y_ = y; }

2015-09-29 18:54:28 747

原创 360笔试--行编辑器

#include #include #include #include #include #include #include #include #include using namespace std;string help(string& s){ string tmp = ""; for(int i = 0; i < s.size(); ++i) { if(s

2015-09-29 18:49:50 455

原创 三个线程分别打印ABC,按顺序输出ABCABC...

#include #include #include #include #include #include using namespace std;pthread_mutex_t lockA;pthread_mutex_t lockB;pthread_mutex_t lockC;int i = 1;void* funA(void* args){ while(1

2015-09-29 01:09:48 3942

原创 类的赋值初始化

#include #include #include #include #include #include #include #include using namespace std;class base{public: base() { cout << "*" << endl; } base(int n)

2015-09-27 21:08:33 566

原创 N-Queens II

Follow up for N-Queens problem.Now, instead outputting board configurations, return the total number of distinct solutions.class Solution {public: bool isValid(vector& svec, int i, in

2015-09-27 20:27:14 252

原创 N-Queens

The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzzle.

2015-09-27 20:20:33 251

原创 找出平面上距离最近的两个点

#include #include #include #include #include #include #include #include using namespace std; struct point { point(double x, double y) { x_ = x; y_ = y; } double x_; double

2015-09-27 10:12:00 2373

原创 求矩阵中2×2子矩阵和的最大值

#include #include #include #include #include #include #include #include using namespace std;void help(char* buf, vector >& vvec){ vector vec; for(int i = 0; i < strlen(buf); ++i)

2015-09-26 00:48:10 905

原创 求数组最长的和为0的连续子数组

#include #include #include #include #include #include #include #include #include using namespace std;void help(vector& vec, char* buf){ for(int i = 0; i < strlen(buf);) {

2015-09-26 00:43:33 1528

原创 最大差值

有一个长为n的数组A,求满足0≤a≤b给定数组A及它的大小n,请返回最大差值。测试样例[10,5],2返回:0class LongestDistance {public:int getDis(vector A, int n){ // write code here int len = n; int max = A[0]; int

2015-09-24 20:53:29 437

原创 epoll使用实例

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ip "127.0.0.1"#defi

2015-09-24 00:27:57 301

原创 poll使用示例

server.cpp#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ip "192.168.188.13

2015-09-23 11:52:58 503

原创 select使用实例

server.cpp#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ip "127.0.0.1"#define port 8888int

2015-09-23 01:04:18 449

原创 TCP客户/服务器程序实例

server.cpp#include #include #include #include #include #include #include #include #include #include #include #include #include #define ip "127.0.0.1"#define port 8888int main(int ar

2015-09-21 15:02:17 335

原创 友元的用法

#include #include #include #include #include #include #include using namespace std;class base;class derive;class base{public: base():n_(0)//初始化,不是赋值 { printf("base\n");

2015-09-20 16:39:29 344

转载 蓄水池抽样——《编程珠玑》读书笔记

问题:如何随机从n个对象中选择一个对象,这n个对象是按序排列的,但是在此之前你是不知道n的值的。        思路:如果我们知道n的值,那么问题就可以简单的用一个大随机数rand()%n得到一个确切的随机位置,那么该位置的对象就是所求的对象,选中的概率是1/n。        但现在我们并不知道n的值,这个问题便抽象为蓄水池抽样问题,即从一个包含n个对象的列表S中随机选取k个对象

2015-09-19 09:23:31 251

原创 两个线程按顺序打印1~10

#include #include #include #include pthread_mutex_t lock;pthread_cond_t cond;int i = 1;void* salewinds1(void* args){ while(1) { pthread_mutex_lock(&lock); if(i == 10) { pthread

2015-09-17 23:46:25 1185

转载 Big Number

Problem DescriptionIn many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you ar

2015-09-16 22:46:33 317

转载 计算两点间的距离

Problem Description输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。Input输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。Output对于每组输入数据,输出一行,结果保留两位小数。Sample Input0 0 0 10 1 1 0Sample Output1.00

2015-09-16 22:18:27 503

转载 海选女主角

potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口。“做什么比较挣钱呢?筛沙子没力气,看大门又不够帅...”potato老师很是无奈。“张艺谋比你还难看,现在多有钱呀,听说还要导演奥运开幕式呢!你为什么不去娱乐圈发展呢?”lwg在一旁出主意。嗯,也是,为了生存,就委屈点到娱乐圈混混吧,马上就拍一部激光电影《杭电记忆——回来我的爱》。说干就干,

2015-09-16 22:14:42 270

转载 Permutation总结

分析:求下一个排列,例如:1,2,3,4,51,2,3,5,41,2,4,3,5...1,2,5,4,31,3,2,4,5...大致分三个步骤:(1)从右[len-1]往左[i],找到num[i] > num[i-1],如没有,即i==0,则num为从大到小排列的数组,则此时的下一个排列,为所有元素从小到大的排列;(2)找到[num[i], num[len-

2015-09-15 19:22:10 363

转载 那些年我们追过的网络库(PartI)

为什么要用 C++ 编写服务端程序?如果说答案是性能,那么肯定有人会满不在乎。觉得性能不够的话, 只要加机器就可以了。然而更少的机器,意味着更低的能耗,更少的硬件投入,更少的人力资源投入去维护机器。总而言之,更低的成本。肯定会有人说,C++的开发速度太慢了。然而这并不是绝对的。C++也可以做到非常快速的开发。有句俗语 * “脚本一时爽,重构火葬场” * 说的正是脚本语言开发的项目进

2015-09-15 08:48:57 431

原创 Sort List

Sort a linked list in O(n log n) time using constant space complexity./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) :

2015-09-14 22:49:35 206

原创 网易游戏2016在线笔试

#include #include #include #include #include #include #include using namespace std;int countLevel(const string & s){ int count = 0; for(int i = 0; i < s.size(); ++i) {

2015-09-13 17:45:14 988

转载 信号量 互斥锁 条件变量的区别

信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量会同时使用的”也就是说,信号量不

2015-09-13 10:16:30 413

转载 理解Semaphore和Mutex

Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况,称为binary semaphore。一般的用法是,用于限制对于某一资源的同时访问。Binary

2015-09-13 10:12:11 474

转载 memcpy函数实现及其优化

实现1:《高质量c++,c编程指南》[cpp] view plaincopyvoid *mymemcpy(void *dst,const void *src,size_t num)  {      assert((dst!=NULL)&&(src!=NULL));            //assert(des>=src+num|

2015-09-12 15:56:43 946

原创 Search a 2D Matrix

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted from left to right.The first integer of each

2015-09-11 10:41:58 231

原创 读书笔记Linux/Unix系统编程手册(63)

1.我们需要区分两种文件描述符准备就绪的通知模式:水平触发通知:如果文件描述符上可以非阻塞的执行的I/O系统调用,此时认为它已经就绪边缘触发通知:如果文件描述符自上次状态检查以来有了新的I/O活动(比如新的输入),此时需要触发通知2.select和poll采用水平触发模式,由于水平触发模式允许我们在任意时刻重复检查I/O状态没有必要每次当文件描述符就绪后需要尽可能多地执行I/O,与之相

2015-09-10 22:34:23 353

原创 生成数组的随机排列

1. 假设有一个数组,里面有10个元素 inta[10]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}。请写一个算法,得到a数组的一个随机排列。要求时间复杂度尽量小,可以使用random函数。例如输出的随机序列可以是:3 6 2 4 5 1 9 8 0(一个常用的方法就是为数组的每一个元素A[i]赋一个key,用来表示它的优先级,即P[i],并且[i]是随机的,然后根据这个优先

2015-09-10 16:16:30 2249

原创 读书笔记之深入理解操作系统(10)

虚拟存储器1.内存中的每个字节都有一个唯一的物理地址,cpu访问存储器最自然的方式就是使用物理地址,我们把这种方式称为物理寻址2.cpu执行这条加载指令时,她会生成一个有效的地址,通过存储器总线,把它传递给主存。主存取出从物理地址4处开始的4字节的字,并将它返回给cpu,cpu会将它放在一个寄存器里3.cpu通过生成一个虚拟地址来访问主存,这个虚拟地

2015-09-09 23:05:23 444

原创 百度2015简答题

1.当前计算机系统一般会采用层次结构来存储数据,请介绍下典型的计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?计算机系统中存储层次可分为高速缓冲存储器(cache)、主存储器、辅助存储器三级。高速缓冲存储器用来改善主存储器与中央处理器的速度匹配问题。辅助存储器用于扩大存储空,即硬盘,光盘等,容量大,但存取数据慢,计算机都是先把辅存中要读的东西放到主存后

2015-09-09 09:26:22 744

原创 读书笔记之TCP/IP1(2)

链路层1.在T C P / I P协议族中,链路层主要有三个目的:(1)为I P模块发送和接收I P数据报;( 2)为A R P模块发送A R P请求和接收A R P应答;(3)为R A R P发送R A R P请求和接收R A R P应答。T C P / I P支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网、令牌环网、F D D I(光纤分布式数据接口)

2015-09-09 09:12:53 363

原创 字符串左移

比如ABCDEFG,移3位变DEFGABC,要求空间复杂度O(1),时间复杂度O(n)。void*pszStringRotate(char*pszString, intnCharsRotate)翻手算法:设置有个函数为倒序排列:void Rorder(char *pF,char *pE);12345

2015-09-08 20:41:40 539

原创 读书笔记之TCP/IP1(1)

概述1.连接网络的另一个途径是使用网桥。网桥是在链路层上对网络进行连接,而路由器则是在网络层上进行互联。网桥使得多个局域网(LAN)组合在一起,这样对上层来说就好像是一个局域网2.TCP使用的是不可靠的IP服务,但它提供可靠的运输层服务3.tcp和udp的每组数据都通过端系统和每个中间路由器中的ip层在互联网中进行传输。直接访问ip的应用程序很少见,但也是可能的。4.ICMP是IP

2015-09-08 16:17:33 287

原创 程序的内存布局

2015-09-08 15:21:11 344

原创 01排序

给定一个01串(仅由‘ 0’或‘1’组成的字符串),现在想把这个数字串排序成“非递减”有序序列,请问至少需要多少次交换(任意两个位置交换)? 输入描述:输入数据第一行是一个正整数T(T<=100),表示有T组测试数据;接下来的T行,每行给出01串。数据保证——50%的字符串长度在[1,100 ]95%的字符串长度在[1,10000]100%的字符串长度在[1,1000000]

2015-09-08 12:15:24 716

原创 scanf用法

int main(int argc,char* argv[]){ while(1) { int n; scanf("%d", &n); fflush(stdin); char buf[1024]; vector svec; vector vec;

2015-09-08 10:17:06 367

转载 寻找凸包

Convex Hull程度★ 難度★Convex Hull中譯「凸包」或「凸殼」。在多維空間中有一群散佈各處的點,「凸包」是包覆這群點的所有外殼當中,表面積暨容積最小的一個外殼,而最小的外殼一定是凸的。至於「凸」的定義是:圖形內任意兩點的連線不會經過圖形外部。「凸」並不是指表面呈弧狀隆起,事實上凸包是由許多平坦表面組成的。以下討論比較簡單的情況:替二維平

2015-09-07 19:22:24 1120

空空如也

空空如也

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

TA关注的人

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