- 博客(31)
- 收藏
- 关注
原创 贪吃蛇
greedy_snake.pyencoding = utf-8import sysimport timeimport pygamefrom pygame.sprite import Groupfrom snake import Snakefrom food import Fooddef eat_check(food,snake,score,screen,snake_g):fo...
2018-10-29 09:41:17
341
原创 杨辉三角
#-*- coding:utf-8 -*-def triangles(n): list1=[1] list2=[1,1] yield list1 yield list2 temp=1 now=3 list1=list2 list2=[1] while now <= n: while temp < ...
2018-10-29 09:36:05
479
原创 替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str,int length) { if(str==NULL||length
2015-10-04 21:32:10
410
原创 二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution {public: bool Find(vector > array,int target) { if(array.size() retur
2015-10-04 21:17:06
376
原创 文章标题
王强今天很开心,公司发给N元的年终奖。王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有 0 个、 1 个或 2 个附件。附件不再有从属于自己的附件。王强想买的东西很多,为了不超出
2015-09-01 13:23:40
682
原创 反转链表
给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。 输入描述:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(5)、以及正整数K(<=N),即要求反转的子链结点的个数。结点
2015-08-24 09:35:28
469
原创 HEAP CORRUPTION DETECTED
错误:heap corruption detected:after normal block(#xxx) at 0x xxxxxxxxcrt detected that the application wrote to menory after end of heap buffer heap corruption的意思就是说输入超出了欲分配的空间大小,覆盖了该空间之后的一段存储
2015-08-13 13:47:05
550
原创 最长递增子序列的长度
对于一个数字序列,请设计一个复杂度为O(nlogn)的算法,返回该序列的最长上升子序列的长度,这里的子序列定义为这样一个序列U1,U2...,其中Ui 给定一个数字序列A及序列的长度n,请返回最长上升子序列的长度。测试样例:[2,1,4,3,1,5,6],7返回:4采用两个辅助数组dp[],help[],数组长度均为n.max_length表示最长递增子序列的长度。dp[i
2015-08-07 16:26:40
403
原创 HTTP 服务器程序
1、 HTTP只有两类消息:HTTP请求消息,由客户机端(如浏览器)向服务器发送的消息,用于请求服务器提供某种类型的服务;HTTP响应消息,服务器接收到请求消息之后返回给客户端的信息,表明服务器所作出的回答。两种消息具有相同的格式,通常分为消息头和消息体两个部分。消息头一定要有,消息体是可选的。消息头部的首行有特殊的格式,首行的后面有多个头部标题字段行,也简称为消息标题。每个头部标题行由标题字段名
2015-08-01 14:35:55
1744
原创 I/O完成端口模型
完成端口模型即Win32通过一个完成端口对象,统筹指定数量的工作线程对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务的I/O模型。在使用这种模型之前,首先要创建一个I/O完成端口对象,用它面向任意数量的套接字句柄,管理多个I/O请求。将套接字句柄与一个完成端口关联在一起后,便可以套接字句柄为基础,投递发送或接收请求,开始I/O请求的处理。接下来,可开始依赖完成端口,接收有关I/O操
2015-07-26 17:01:20
489
原创 WSAEventSelect模型
WSAEventSelect模型类似于WSAAsynSelect模型,但最主要的区别是网络事件发生时会被发送到一个事件对象句柄,而不是发送到一个窗口。该模式下编程步骤为:【1】首先创建事件对象来接收网络事件。 WSAEVENT WSACreateEvent(void); 调用后返回事件对象句柄,初始状态为无信号且为手工重置事件,如果程序想使用自动
2015-07-26 16:02:52
483
原创 WSAAsynSelect模型
Windows Socket的异步选择函数WSAAsyncSelect()提供了对网络事件基于消息机制的异步存取,通过 该函数可以注册应用程序感兴趣的网络事件,当登记的网络事件 发生时,相应的窗口将收到一个信息,消息中指示了发生的网络事件及其相关信息。 int WSAAsyncSelect(socket s,HWND hWnd,unsigned int wMsg,lon
2015-07-26 14:57:04
403
原创 Winsock select编程模型
1、winsock的两种I/O模式 Windows Socket套接字可以在两种模式下进行I/O操作:阻塞模式和非阻塞模式。 在阻塞模式下,执行I/O操作的函数在操作完成之前会一直等待,不会将这种控制权返回给程序,这样任一线程在某一时刻只能执行一个I/O操作。套接字在创建时默认为阻塞模式。在非阻塞模式下,执行I/O操作的Winsock函数会立即返回并交出控制权,
2015-07-26 14:19:35
496
原创 IP包流量分析程序
使用套接字编程实现捕获一段时间内以本机为源地址或目的地址的IP数据包(不包括以广播形式发出的数据包),统计IP数据包的信息,列出本机与其他主机之间不同协议类型IP数据包的数量 及流量。以源地址 目的地址 协议类型 数据包数量 流量的格式输出统计信息。 1、IP数据报格式: (1)版本:表示所使用的IP协议的版本,4表示IPv4,6表示IPv6 (2)
2015-07-23 22:33:45
5106
3
原创 使用原始套接字编程实现简单的ping程序
程序实现步骤:1、初始化Windows Sockets网络环境 WSADATA wsa;WSAStartup(MAKEWORD(2,2),&wsa);2、构造目的端Socket地址3、创建原始套接字4、定义IP和ICMP头部数据结构5、发送报文6、接收报文其中ICMP回显请求与回显应答报文结构如下图:typedef struct IcmpHead
2015-07-20 10:59:08
7479
1
原创 网络编程 CAsyncSocket类的应用实例 聊天程序 客户端代码
此应用实例采用客户机、服务器模式,实现与服务器之间相互发送消息,编程步骤如下:1、构造一个套接字 CAsyncSocket sockClient;2、创建SOCKET句柄 sockClient.Create(); Create()函数:BOOL Create( UINT nSocketPort=0,int nSocketType=SOCK
2015-07-19 20:07:28
5272
1
原创 打印汉诺塔游戏轨迹
对于传统的汉诺塔游戏我们做一个拓展,我们有从大到小放置的n个圆盘,开始时所有圆盘都放在左边的柱子上,按照汉诺塔游戏的要求我们要把所有的圆盘都移到右边的柱子上,请实现一个函数打印最优移动轨迹。给定一个int n,表示有n个圆盘。请返回一个string数组,其中的元素依次为每次移动的描述。描述格式为: move from [left/mid/right] to [left/mid/right]。
2015-07-18 16:40:06
782
原创 面试常考算法题 局部最小 求二叉树结点 求两个数组中所有数的上中位数 两个数组的所有数中第K小的数
定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]给定无序数组arr,已知arr中任意两个相邻的数都不相等,写一个函数,只需返回arr中任意一个局部最小出现的位置即可。class Solution {public: int getLessIndex(vector arr) { int N=arr.size
2015-07-11 20:31:02
1931
原创 编写一个方法,将字符串中的空格全部替换为“%20”
请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。给定一个string iniString 为原始的串,以及串的长度 int len, 返回替换后的string。测试样例:"Mr John Smith”,13返回:"Mr%20John%20Smith"
2015-07-09 23:24:36
3193
原创 数据结构--二叉树遍历 C++实现
1、二叉树结构定义struct node{ int data;//数据 node * leftchild;//左孩子结点node * rightchild;//右孩子结点}2、二叉树的递归遍历 2.1先序遍历 void preorder(node *r){ if(r!=NULL){//NULL 还是null? cou
2015-06-02 20:35:26
352
原创 win7(32位)配置cocos2d-x
我的电脑是win7家庭普通版32位,Python安装的2.7.8,cocos2d安装的是2.2.6,用的是vs20101、首先呢,我们要装一个vs,貌似visual studio2010,visual studio2012都可以,我都装了,不过我的2010是正版,所以就用它了。2、然后呢,我们要装Python。下载地址:https://www.python.org/downloads/。
2015-05-30 15:27:52
660
原创 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
class Solution {public: stack s1;//保存数据用的栈 stack s2;//保存最小的数的栈,其中它的栈顶始终为最小的数 void push(int value) { s1.push(value); if(s2.empty()) s2.push(value);//如果S2为空,则value是最小的值,入栈
2015-05-25 20:58:37
460
原创 数据结构--C++
本文将根据自己对数据结构的理解,介绍数据结构的基本类型--链表。写的不好的地方欢迎指正。首先是单链表。结点数据结构定义:struct node{int data;node* next;}单链表的基本操作:1、确定链表长度: int length(node* first) const{ node* current=first;
2015-05-14 14:12:20
340
原创 输入一个二叉树,输出其镜像。
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {pub
2015-04-25 11:37:53
578
原创 输入两颗二叉树A,B,判断B是不是A的子结构。
这里测试的结果为假设B是空二叉树,则B不是A 的子结构。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }
2015-04-25 11:06:54
502
原创 输入一个链表,输出该链表中倒数第k个结点。
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode
2015-04-23 11:36:32
309
原创 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */cla
2015-04-23 09:51:38
1805
原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()) {while(!stack1.empty()) {stack2.push(stack1.to
2015-04-23 09:13:42
2728
原创 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
class Solution {public: int rectCover(int number) { if(number==1) return 1; else if(number==2) return 2; else { return rectCover(
2015-04-22 22:24:32
2980
原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
class Solution {public: int jumpFloorII(int number) { int count=0; if(number0) return count; else if(number==1) return 1; else if(number
2015-04-22 22:23:48
2882
原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
class Solution {public: int jumpFloor(int number) { int count=0; if(number0) return count; else if(number==1) return 1; else if(numbe
2015-04-22 22:21:52
2429
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人