John Will的博客

一个人的独白。

收发文件的服务器端/客户端实现

程序需求 客户端接受用户输入的传输文件名 客户端请求服务器端传输该文件名所指文件 服务器端代码: #include <iostream> #include <string> #include &am...

2018-07-29 19:45:13

阅读数:138

评论数:0

调整数组顺序使奇数位于偶数前面

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 class Solution { public: void reOrderArray(vector&am...

2018-07-29 11:53:29

阅读数:26

评论数:0

树的子结构

题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x...

2018-07-29 11:53:18

阅读数:22

评论数:0

OSI 7层模型与TCP/IP协议栈4层模型

OSI 7层模型是指开放系统互连参考模型(Open  System InterConnect),是为了实现开放系统互连所建立的通信功能模型。 OSI 7层模型 第7层:应用层(Application Layer)---提供为应用程序而设的界面,来与另一个应用程序之间进行通信。是网络向用户提供应...

2018-07-29 11:52:58

阅读数:41

评论数:0

求二进制数中0或1的个数

假如x是一个二进数,例如x=0xfffa(1111 1111 1111 1010),要实现去掉最低位一个0,可进行的操作是x|=(x+1),此时x==0xfffb(1111 1111 1111 1011) ;再去掉一个0,同样,x|=(x+1),则x==0xffff。如果x的2字节表示,则(x+1...

2018-07-23 15:32:05

阅读数:26

评论数:0

矩形覆盖

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? class Solution { public: int rectCover(int number) { int dp[numb...

2018-07-23 15:24:09

阅读数:15

评论数:0

变态跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 class Solution { public: int jumpFloorII(int number) { int d[number+1]; ...

2018-07-23 15:15:36

阅读数:11

评论数:0

变态跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 class Solution { public: int jumpFloorII(int number) { int d[number+1]; ...

2018-07-23 15:15:33

阅读数:10

评论数:0

斐波那契数列

题目:写一个函数,输入n,求斐波那契数列的第n项。   方法1:递归: int fib2(int n) { if(n == 0) return 0; if(n == 1) return 1; return fib2(n-1)+fib2(n-2); } 缺点:如果n比较大,那...

2018-07-23 14:54:10

阅读数:14

评论数:0

旋转数组的最小数字

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 本题给的也算是有序数列,一看就应该和二分沾边,事实也是这样。 题目给的是非...

2018-07-23 14:43:02

阅读数:15

评论数:0

用两个栈来实现一个队列

题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 class Solution { public: void push(int node) { stack1.push(node); } int pop()...

2018-07-23 11:18:51

阅读数:15

评论数:0

重建二叉树

题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如图所示的二叉树并输出它的头结点。  分析及实现: 思...

2018-07-23 10:36:13

阅读数:27

评论数:0

替换空格

题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路:从前向后记录‘ ’数目,从后向前替换‘ ’。 重点:从后向前替换的时候的技巧 例如:“we are lucky” ...

2018-07-23 10:29:06

阅读数:10

评论数:0

[剑指Offer]二维数组中的查找

题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入描述 array: 待查找的二维数组  target:查找的数字 输出描述 查找到返回true,...

2018-07-23 09:54:46

阅读数:18

评论数:0

Pthread - 线程池(thread pool)实现

线程池简介 线程池在多线程编程中经常要用到,其基本模型仍是生产者/消费者模型,线程池一般由线程池管理器(ThreadPool),工作线程(PoolWorker),任务( Task),任务队列(TaskQueue)四部分组成,其中  线程池管理器(ThreadPool):用于创建并管理线程池,包括...

2018-07-22 14:40:03

阅读数:32

评论数:0

POSIX条件变量---以生产者、消费者为实例

条件变量(Condition Variables) 条件变量是什么? 条件变量为我们提供了另一种线程间同步的方法,然而,互斥量是通过控制线程访问数据来实现同步,条件变量允许线程同步是基于实际数据的值。 如果没有条件变量,程序员需要让线程不断地轮询,以检查是否满足条件。由于线程处在一个不间断的...

2018-07-21 20:56:29

阅读数:26

评论数:0

Linux多线程实践 --Posix信号量与互斥量解决生产者消费者问题

Posix信号量 Posix 信号量 有名信号量 无名信号量 sem_open sem_init sem_close sem_destroy ...

2018-07-21 17:00:34

阅读数:52

评论数:0

线程属性

线程属性 前篇介绍了使用缺省属性创建线程的基本原理。本章论述如何在创建线程时设置  属性。  注– 只有pthreads 使用属性和取消功能。本章中介绍的API 仅适用于POSIX 线程。除此  之外,Solaris 线程和pthreads 的功能大致是相同的。 属性对象 通过设置属性,可以...

2018-07-21 15:33:24

阅读数:28

评论数:0

POSIX线程实现回射客户端/服务器

linux socket的多线程编成来实现多个客户端的连接 在socket的网络编程中常常采用多线程的方法来进行与多个客户端的通信,使服务器与多个客户端的通信并发、并行地进行。相比于多进程,多线程的好处是共用一块内存空间,下面我们来看一个简单的例子,就是多个客户端将字符串发送给服务器,服务器再将...

2018-07-21 15:14:03

阅读数:23

评论数:0

POSIX 线程小结

POSIX 在IEEE Std 1003.1c-1995 (也称为POSIX 1995 或 POSIX.1c) 对线程库进行了标准化。开发人员称之为 POSIX线程,或简称为 Pthreads。Pthreads 是 UNIX 系统上 C 和 C++ 语言的主要线程解决方案。   Pthread...

2018-07-21 14:45:48

阅读数:62

评论数:0

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