自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(29)
  • 资源 (20)
  • 收藏
  • 关注

原创 Leetcode dfs Path Sum

Path Sum Total Accepted: 20393 Total Submissions: 66674My SubmissionsGiven a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along

2014-08-31 20:13:02 956

原创 Leetcode 细节实现题 Spiral Matrix II

Spiral Matrix II Total Accepted: 12773 Total Submissions: 41526My SubmissionsGiven an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.For exampl

2014-08-31 17:03:27 701

原创 Leetcode 细节实现题 Spiral Matrix

Spiral Matrix Total Accepted: 12721 Total Submissions: 62094My SubmissionsGiven a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.For ex

2014-08-31 16:29:30 709

原创 Leetcode 链表 Linked List Cycle II

题意:给定一个单链表,判断该链表中是否存在环,如果存在,返回环开始的节点思路:1.定义两个指针,快指针fast每次走两步,慢指针s每次走一次,如果它们在非尾结点处相遇,则说明存在环2.若存在环,设环的周长为r,相遇时,慢指针走了 slow步,快指针走了 2s步,快指针在环内已经走了 n环,则有等式 2s = s + nr => s = nr3.在相遇的时候,另设一个每次走一步的慢指针slow2从链表开头往前走。因为 s = nr,所以两个慢指针会在环的开始点相遇复杂度:时间O(n)struct

2014-08-30 23:04:02 703

原创 Leetcode 贪心 container with most water

题意:二维坐标系里有 n 个点 (i, ai), ai >= 0,从 (i, ai)到(i, 0)划竖线,共有 n 条竖线。找出两条竖线,使得它们构成的矩形的面积最大,矩形的高取决于最短的竖线。思路:贪心从首尾两个下标head 和trail 处开始扫描,用一个变量 maxArea 保持当前最大的矩形面积。如果head 指向的竖线短于 trail 的,则右移 head否则左移 trail计算面积,更新 maxArea复杂度:时间O(n),空间O(1)int maxArea(vector<in

2014-08-30 16:00:14 848

原创 Leetcode 细节实现 Rotate Image

题意:给定一个 n * n 的二维图像,将该图像顺时针旋转 90 度思路:先沿副对角线翻转一次,再沿水平中线翻转一次复杂度:时间O(n^2),空间O(1)void rotate(vector<vector<int> > &matrix){ int n = matrix.size(); //沿副对角线翻转 for(int i = 0; i < n; ++i){ for(int j = 0; j < n - i; ++j){ int i2 = n - 1 - j, j2 = n -

2014-08-30 15:29:41 739

原创 Leetcode 动态规划 Minimum Path Sum

题意:给定一个 m * n 的网格,网格中有非负的数字。一个机器人要从左上角走到右下角,每次只能向下或向右移动一个位置,找出一条总和最小的路径,返回最小值思路1:记忆化搜索使用一个两维 minPathSums[i][j]记录 (i,j)到(m,n)的总和最小的路径的值然后使用dfs 枚举复杂度:时间O(2^n) 空间O(n)思路2:dp设置状态为f[i][j],表示到达网格(i,j)的总和最小的路径的值,则状态转移方程为f[i][j] = min(f[i - 1][j] + f[i][

2014-08-30 13:14:18 863 1

原创 Leetcode 动态规划 Unique Paths II

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlieUnique Paths II Total Accepted: 13655 Total Submissions: 49081My SubmissionsFollow up for "Unique Paths":Now consider i

2014-08-29 14:46:47 705

原创 Leetcode 动态规划 Unique Paths

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlieUnique Paths Total Accepted: 17915 Total Submissions: 57061My SubmissionsA robot is located at the top-left corner of a m

2014-08-29 11:23:49 852

原创 Leetcode 高精度 Plus One

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenliePlus One Total Accepted: 17614 Total Submissions: 55852My SubmissionsGiven a non-negative number represented as an array

2014-08-29 01:58:01 1106 3

原创 Leetcode 动态规划 Candy

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlieCandy Total Accepted: 16494 Total Submissions: 87468My SubmissionsThere are N children standing in a line. Each child is

2014-08-29 01:28:36 1586

原创 Leetcode 动态规划 Trapping Rain Water

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlieTrapping Rain Water Total Accepted: 14568 Total Submissions: 50810My SubmissionsGiven n non-negative integers representin

2014-08-29 01:15:02 1293

原创 UNIX网络编程卷1 服务器程序设计范式8 预先创建线程,由主线程调用accept

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.程序启动阶段创建一个线程池之后只让主线程调用 accept 并把客户连接传递给池中某个可用线程。//用于维护关于每个线程基于信息的 Thread 结构typedef struct { pthread_t thread_tid; /* 线程 ID */

2014-08-27 11:42:06 1038

原创 UNIX网络编程卷1 服务器程序设计范式7 预先创建线程,以互斥锁上锁方式保护accept

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.预先创建一个线程池,并让每个线程各自调用 accept2.用互斥锁取代让每个线程都阻塞在 accept 调用之中的做法//用于维护关于每个线程基于信息的 Thread 结构typedef struct { pthread_t thread_tid;

2014-08-26 11:54:24 1345

原创 UNIX网络编程卷1 服务器程序设计范式6 并发服务器,为每个客户请求创建一个线程

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.为每个客户请求创建一个线程,以取代为每个客户派生一个子进程/* include serv06 */#include "unpthread.h"intmain(int argc, char **argv){ int listenfd, conn

2014-08-26 11:51:58 1214

原创 UNIX网络编程卷1 服务器程序设计范式5 预先派生子进程,由父进程向子进程传递套接字描述符

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.只让你进程调用 accept,然后把所接受的已连接套接字“传递”给某个子进程。这样做就不用因为所有子进程都调用 accept 而需提供上锁保护2.父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的套接字typedef struct { pid_t

2014-08-26 11:51:13 1426

原创 UNIX网络编程卷1 服务器程序设计范式4 预先派生子进程,以线程互斥锁上锁方式保护accept

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.文件上锁文件系统操作,比较耗时2.线程上锁,不仅适用于同一进程内各线程之间的上锁,也适用于不同进程之间的上锁。3.在不同进程之间使用线程上锁要求:1)互斥锁变量必须存放在由所有进程共享的内存区中2)必须告知线程函数库这是在不同进程之间共享的互斥锁/*

2014-08-26 11:50:14 988

原创 UNIX网络编程卷1 服务器程序设计范式3 预先派生子进程,以文件上锁方式保护accept

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.允许多个进程在引用同一个监听套接字的描述符上调用 accept 这种做法并不具备兼容性。解决的方法是让应用进程在调用 accept 前后安置某种形式的锁(lock),这样任意时刻只有一个子进程阻塞在 accept 调用中,其他子进程则阻塞在试图获取用于保护 accept

2014-08-26 11:30:17 993

原创 UNIX网络编程卷1 服务器程序设计范式2 预先派生子进程,每个子进程调用accept

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.预先派生子进程:在启动阶段预先派生一定数量的子进程,当各个客户连接到达时,这些子进程立即就能为它们服务。2.优点是无须引入你进程执行 fork 的开销就能处理新到的客户。缺点是父进程必须在服务器启动阶段猜测需要预先派生多少子进程。3.父进程可以持续监视闲置子进程

2014-08-25 21:56:06 892

原创 UNIX网络编程卷1 服务器程序设计范式1 并发服务器,为每个客户请求fork一个进程

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.传统并发服务器调用 fork 派生一个子进程来处理每个客户2.传统并发服务器的问题在于为每个客户现场 fork 一个子进程比较耗费 CPU 时间。/* include serv01 */#include "unp.h"intmain(int argc,

2014-08-25 21:55:21 992

原创 UNIX网络编程卷1 服务器程序设计范式0 迭代服务器

1.迭代 TCP 服务器总是在完全处理某个客户的请求后才转向下一个客户。2.从进程控制角度看迭代服务器是最快的,因为它不执行进程控制。/* include serv00 */#include "unp.h"intmain(int argc, char **argv){ int listenfd, connfd; void sig_int(int), web

2014-08-25 21:53:34 950

原创 UNIX网络编程卷1 回射客户程序 UDP 超时设置

最初代码:#include "unp.h"intmain(int argc, char **argv){ int sockfd; struct sockaddr_in servaddr; if (argc != 2) err_quit("usage: udpcli "); //1.指明服务器的 IP 地址和端口 bzero(&servaddr, s

2014-08-25 21:50:48 1166

原创 UNIX网络编程卷1 回射服务器程序 TCP服务器程序设计范式 四个版本

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie这是一个简单的回射服务器程序。它将客户发送的数据读入缓冲区并回射其中内容下面我会介绍同一个使用 TCP 协议的回射服务器程序的几个不同版本,分别是 fork 版本、select 版本、poll 版本、多线程版本fork 版本:为每一个客户连接派生(for

2014-08-25 21:25:07 905

原创 UNIX网络编程卷1 回射客户程序 TCP客户程序设计范式

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie下面我会介绍同一个使用 TCP 协议的客户端程序的几个不同版本,分别是停等版本、select 加阻塞式 I/O 版本、非阻塞式 I/O 版本、fork 版本、线程化版本。它们都由同一个 main 函数调用来实现同一个功能,即回射程序客户端。它从标准输入读入一行文本,写到服务器上,读

2014-08-25 21:20:45 912

原创 UNIX网络编程卷1 时间获取程序服务器 UDP 协议无关

/** * UDP 协议无关 调用 getaddrinfo 和 udp_server **/#include "unp.h"#include <time.h>intmain(int argc, char **argv){ int sockfd; ssize_t n; char buff[MAXLINE]; time_t ticks; socklen_t len; struct sockaddr_storage cliaddr; //1.利用 Udp_s

2014-08-24 22:53:40 876

原创 UNIX网络编程卷1 时间获取程序服务器 TCP 协议相关性

最初代码: 这是一个简单的时间获取服务器程序。它和时间获取程序客户端一道工作。 TCP/IPv4, IPv6 协议相关 IPv4 --> IPv6 (把代码中出现的左边的字符串换为右边的,就变成了IPv6版本的) sockaddr_in --> sockaddr_in6 AF_INET --> AF_INET6 sin_family --> sin6_family sin_port --> sin6_port sin_addr --> sin6_addr#include "unp.h"

2014-08-24 22:53:03 1031

原创 UNIX网络编程卷1 时间获取程序客户端 UDP 协议无关

/*** UDP,协议无关,调用 getaddrinfo 和 udp_client**/#include "unp.h"intudp_client(const char *host, const char *serv, SA **saptr, socklen_t *lenp){ int sockfd, n; struct addrinfo hints, *res, *ressave; //1.调用 getaddrinfo //协议地址族为 AF_UNSPEC ,套接字类型为

2014-08-24 22:48:42 1150

原创 UNIX网络编程卷1 时间获取程序客户端 TCP 使用非阻塞connect

/*** TCP,使用非阻塞 connect**/#include "unp.h"intconnect_nonb(int sockfd, const SA *saptr, socklen_t salen, int nsec){ int flags, n, error; socklen_t len; fd_set rset, wset; struct timeval tval; //1.调用 fcntl 设置套接字为非阻塞 flags = Fcntl(sockfd,

2014-08-24 22:47:23 1157

原创 UNIX网络编程卷1 时间获取程序客户端 TCP 协议相关性

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie最初代码: 这是一个简单的时间获取客户程序。客户与服务器建立一个TCP连接后,服务器以直观可读格式简单地送回当前时间和日期这个例子是协议相关,使用 inet_pton TCP/IPv4, IPv6 协议相关 IPv4 --> IPv6 (把代码中出现的左边的

2014-08-24 22:46:34 1692

testtestest

testesatsetststesttetsttttttttttttttttttttttttttttttttttttt

2012-10-27

UNIX网络编程 卷1

 本书是一部UNIX网络编程的经典之作。附录中给出了测量各种IPC形式性能的方法。   本书内容详尽且具权威性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。

2012-08-13

浙江大学android公开课

浙江大学android公开课的一些讲义。对于学习android的同学很有帮助。。。。。

2011-10-05

Android中文合集(126+8篇)

Android中文翻译组是一个非盈利性质的开源组织,聚一批开发人员、大学生、研究生等Android爱好者,利用业余时间对Android相关的API及开发者指南等进行翻译,至今已超过200人报名参与,欢迎更多朋友加入,联系Mail:over140@gmail.com,关于翻译组的更多介绍,请看这里。 本合集包含126章节API和8章开发者指南

2011-10-05

Android最佳学习路线图

Android最佳学习路线图 Android最佳学习路线图 快速进入android的世界 快速进入android的世界

2011-09-04

java编程思想(第4版)

《Java编程思想(第4版)》以Java最新的版本JDK5.0为基础,在第3版的基础上,添加了最新的语言特性,并且对第3版的结构进行了调整,使得所有章节的安排更加遵照循序渐进的特点,同时每一章的内容在分量上也都更加均衡,这使读者能够更加容易地阅读本书并充分了解每章所讲述的内容。在这里我们再次向Bruce Eckel致敬,他不但向我们展示了什么样的书籍才是经典书籍,而且还展示了经典书籍怎样才能精益求精,长盛不衰。

2011-09-04

腾讯2005-2011年笔试题 部分含有答案

腾讯历年笔试题2005-2011年集合部分含有答案。题目很不错。祝愿大家找到好工作。

2011-07-16

操作系统概念课件ch03

高等教育出版社的操作系统经典恐龙书操作系统概念课件

2011-06-26

操作系统概念英文课件ch01

高等教育出版社的操作系统经典恐龙书第一章

2011-06-26

操作系统概念第七版答案(英文)

高等教育出版社 经典的操作系统恐龙书答案

2011-06-26

操作系统概念第六版习题答案(英文)

操作系统概念 第六版 高等教育出版社出版的 英文版答案

2011-06-26

空空如也

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

TA关注的人

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