- 博客(83)
- 资源 (19)
- 收藏
- 关注
原创 利用函数来获得本机所有的端口
#include #include #include #include #pragma comment(lib, "iphlpapi.lib")#pragma comment(lib, "user32.lib")#pragma comment(lib, "ws2_32.lib")/*typedef enum{ TCP_TABLE_BASIC_LISTENER, TCP_T
2015-07-20 15:46:59
2387
原创 Windws获得所有的端口列表
#include #include #include #include #include #include #include using namespace std;BOOL FindFirstFileExists(LPCTSTR lpPath, DWORD dwFilter){ WIN32_FIND_DATA fd; HANDLE hFind = FindFirstFi
2015-07-19 14:52:32
1858
原创 RedHat 利用Createrepo创建本地源
直接提供一个脚本。#!/bin/bashif [[ $# -eq 0 ]]; then echo "Please input just one args." exit 0fimkdir -p /mnt/$1/x86_64/cp -rf /tmp/debs/* /mnt/$1/x86_64/createrepo /mnt/$1/
2013-08-12 15:05:15
4465
原创 编译c++ Rest api示例
好不容易从网上找了一个C++写Rest API的示例,一开始总是遇到编译出错。这里记录一下过程。$ git clone git://github.com/JiYou/NipunTalukdarExamples.git下载代码之后,首先需要安装libcurl.到http://curl.haxx.se/download.html 这里下载代码。比如curl-7.29.0.t
2013-03-20 14:01:34
7428
1
原创 MySQL用户添加
我的是Ubuntu-12.04。发现在MySQL中经常出现添加用户之后,要么只能本地登陆,要么只能远程登陆的蛋疼的情况。这里记录一下是如何操作的。创建用户CREATE USER 'username'@'%' IDENTIFIED BY 'password';如果想要让这个用户即可以本地登陆,也可以远程登陆。需要执行:grant select,insert,update,dele
2012-11-15 11:07:33
2158
原创 面试题整理-卡特兰数问题收集
首先说一下卡特兰数列,H(n) = C(n, 2n) / (n+1) = (2n)!/(n!n!(n+1))H(3) = 5; 题目1:矩阵的乘法添加括号我们知道,A*B可以,但是并不表示B*A也可以。假设有N+1个矩阵相乘,不能交换次序。只能用添加括号的方法来修改乘积的次序。那么有多少种添加括号的方法。H(n)种。 题目2:出栈次序问题,一个栈,其进栈的序列是
2012-11-08 14:15:58
2917
原创 The C Programming Language 第1章
1.1 概述1、注意各种转义字符。 以前从来没有注意过转义字符。有个很奇怪的问题是这样的。怎么手动输入一个'\0'字符。答案是Ctrl + @就可以输入一个'\0'结束符。 比如一个简单的测试程序: #include int main(void) { char str[100]; while (scanf("%s", str) !=
2012-11-07 21:11:57
5029
原创 面试题整理-最小没出现的整数
题目:#面试题#给定一个无序的整数数组,怎么找到第一个大于0,并且不在此数组的最小整数。比如[1,2,0] 返回 3, [3,4,-1,1] 返回 2。最好能O(1)空间和O(n)时间。来源http://weibo.com/lirenchen。 解法:直接考虑这个问题是比较困难的。不如先换个简单的问题。 问题1给定一个数组,长度为n,除a[0]以外,其他元素都是a[
2012-11-06 16:16:35
8629
原创 面试题整理-两个栈实现队列
题目用两个栈实现队列。 解法准备两个栈。一个是input, 一个是output。1、入栈:直接用input.push()2、出栈:如果output非空。则利用output出栈。 如果output为空。则把input中的元素全部pop至output栈中。再利用output出栈。 说得简单一点就是从input栈进去,从ouput栈出去
2012-10-26 16:44:07
2449
原创 面试题整理-从数组中删除指定元素
题目:陈利人:#Facebook面试题#这是一个编程题,动手做做才会有体会。给一个数组和一个值,从数组中删除这个指定的值的所有出现,并且返回新的数组的长度。size_t remove_elem(T* array, size_t len, T elem) {}。解题:首先可以想到的是,用额外用一个数组。遇到不同的元素,就把此元素拷至额外的数组中。实际上,很快就可以发现
2012-10-25 12:32:27
3165
原创 面试题整理-重建二叉树
题目根据输入的前序遍历和中序遍历。重建一棵二叉树。解法:其实求解很简单。关键在于求出长度。假设函数的形式如同:templatenode *build(const T *pre, const T *mid, const int n);那么pre[0]肯定是树的根,可以把中序遍历分为两部分。一部分长度为A,另外一个长度为B。那么pre的构成则是。pre[0]--
2012-10-24 15:26:52
2120
原创 面试题整理-链表的几个微操
typedef struct _node{ int data; struct _node *next;}node;1 在链表未尾插入一个结点node *push_back(node **head, int value) { node *p = *head; if (NULL == head) return NULL; if (NULL
2012-10-17 08:59:03
2286
原创 面试题整理-合并数组
题意:需要将A,B两个已排序数组合并至A数组中,假设A数组中的空间是够用的。那么请写这么一个合并函数。当然,最后的结果也一定是有序的。解题:很好写。直接从后面开始向前合并#include #include #include int a[4096];int b[4096];int _cmp(const void *a, const vo
2012-10-16 22:48:47
2081
原创 面试题整理-空格变更
题目:给定个字符串,把这个字符串中的空格更改成为%20。假定这个字符串的空间是够用的。解法首先计算空格数目x与非空格数目y。那么更改之后的字符串长度为3x+y;计算出长度之后,再从尾部向前拷贝。#include #include #include char *change(char *src) { int cnt_space = 0, cnt_
2012-10-15 22:22:19
1910
原创 面试题整理-矩阵查找元素
需要在矩阵中查找元素。这个矩阵的排列如下:每一行都是有序的。每一列都是有序的。比如一个小矩阵。10 3020 80现在,我们需要在一个这样N * M的矩阵中找到一个元素,并返回其位置。思路首先,这个题不太适合二分查找。因为并不能保证第二行的元素都一定比第一行的任意元素大。所以应该是很难找到O(lgN)的算法。每次都是取
2012-10-15 20:39:38
2917
原创 面试题整理-数组做为平衡二叉树进行访问
题目:现在有一个数组,是排好序的。如何将其按照平衡二叉树进行打印。需要按层次遍历。思路很简单,就是需要确定一个算法去找左子结点与右子结点。#include #include #include #include #include #include #include #include #include #include #include
2012-10-13 21:41:46
2658
原创 面试题整理-台阶问题
原题 测试链接http://ac.jobdu.com/problem.php?cid=1039&pid=4 首先我们考虑上面链接中提出的问题:由于一次只能走两步,那么在到达n步的上一步。其只能是要么在(n-1)个台阶上。要么是在(n-2)个台阶上。所以我们可以得到fn = fn-1 + fn-2;f1 = 1; f2 = 2;这里可以看出,同样也可以利用斐波那契数的
2012-10-11 21:11:01
2646
原创 面试题整理-斐波那契数列
这个很好。其实也就是f(0) = 0, f(1) = 1. 然后 f(n) = f(n-1) + f(n-2);测试链接http://ac.jobdu.com/problem.php?cid=1039&pid=3求解#include #include long long a[71];void init(void) { a[0] = 0; a[1] = a[
2012-10-11 12:44:21
3726
原创 面试题整理-C++ 序列化对象
题目:在C++里面,两台机器之间的函数相互调用,需要传递对象。采用什么样的方法可以把C++对象序列化之后,在两台机器之间,像字符串一样传输。解法:想到boost库中是有一个序列化类的。在这里,我们直接利用这个类来进行处理。#include #include #include #include #include using namespace std;class gps_posit
2012-08-29 17:45:29
2397
原创 面试题整理-大数求和
题意很简单,就是求两个任意整数之和。原题在:http://acm.hdu.edu.cn/showproblem.php?pid=1002首先说一下正确的思路:第一步:输入的处理:如果输入是00000123344需要处理为123344。函数为:string &_del_zeros_before_dot(string &a){ if (a.len
2012-05-09 20:17:22
5068
原创 面试题整理-3数之和为0
Given an array S of n integers, are there elements a,b,c inS such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:Elements in a triplet (a,b,c) mus
2012-05-09 20:16:18
1667
原创 面试题整理-线性时间求最长回文子串
Longest Palindromic SubstringGiven a string S, find the longest palindromic substring in S. You may assume that the maximum length ofS is 1000, and there exists one unique longest palindromic substr
2011-11-17 21:37:57
1478
原创 面试题整理-链表形式大数求和
两个整数,每位的十进制表示都放到链表中,不过是倒序的,需要求出其结果。原题如下:Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes cont
2011-11-17 20:38:47
1921
原创 编程珠玑第一章补充
2、求出2.5亿个整数中不重复的数字,注意内存无法存下2.5亿的数字。(1)说明你的思路(2)写出你的算法,可以用语言实现或者用伪代码表示 个人提示:位图法1、这里用到两个位图,先填充第一个位图a。当发现一个数字被填充过之后,则用这个数字填充b。很明显,b中记录的是重复出现过的数字。2、当扫描完一次之后。再扫描b位图。只要出现在b位图中的数,就拿去清除a
2011-11-16 22:55:25
876
原创 母牛问题
现有一头母牛,其2岁、4岁会生一头小牛。其他生下来的小牛也是如此。那么n年之后,有多少头牛?#include#include#includeint a[7];int main(void){ int n, i; while (scanf("%d", &n) != EOF && n){ if (1 == n) {printf("1\n"); continue;}
2011-11-16 22:50:19
761
原创 编程珠玑第8章-课后习题10题补充
按照原题的意思是在题目上进行扩展。本来是要找一个连续子数组,其和最大。那么现在习题的要求是找到这么一个连续子数组,其和的绝对值最接近0。O(n^3)或O(^2)的实现都很好处理。O(n^3)到O(n^2)的差别在于可以一次性求出sum(i ~~j)的值。这个可以想一下的。如下例int sum[n];sum[0] = a[0];for (int i = 1; i < n;
2011-11-16 12:54:10
2088
2
原创 LeetCode 题目之 数组两数之和问题
LeetCode上的一个题:给定一个数组,寻找在这个数组中是否存在两个数之和为某个定值。要点:1、一个数就是一个数,比如[2, 1],寻找和为4时,不能使用2+2。2、需要输出位置。排序方法首先排序,然后按照编程之美中提到的方法进行处理。代码如下.#include#include#includeusing namespace std;c
2011-11-16 09:42:15
2987
原创 一个简单的C程序
从终端读入一个字符,再从终端输出。#includeint main(void){ int c; while ((c = getc(stdin)) != EOF) if (putc(c, stdout) == EOF) fprintf(stderr, "Error occur when put char\n"); if
2011-11-15 22:17:55
711
原创 POJ 1010 邮票
题意: 给出n种邮票,每种邮票有自己的面值(面值可能重复) 指定m种“总面值”,对每种“总面值”,求解满足如下条件的组合以达到该“总面值”(1) 所用邮票在n种中可以重复选取(2) 所用邮票张数〈=4(3) 尽量多的使用那个不同种类的邮票 Max (Stamp Types)(4) 若有多种方案满足(3),则选取张数最小的一种方案 Min (Stamp Num)(5)
2011-11-14 19:31:01
998
原创 斯特林公式在 ACM中的使用
给两个斯特林公式的链接http://episte.math.ntu.edu.tw/articles/mm/mm_17_2_05/page2.html http://hi.baidu.com/vincentz/blog/item/54686c63fa113f630c33fafe.html现在为止,遇到两个这样的题,还是写一下,尽管是水题。第一个题,求阶乘的最高位。h
2011-11-12 16:15:38
3810
原创 动态规划 最长不重复连续子串
题意Longest Substring Without Repeating CharactersGiven a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letter
2011-11-10 22:39:53
2849
原创 ACM 算法艺术与信息学竞赛 1.2.2 钓鱼 Gone Fishing
继续向前做题。这个题在http://poj.org/problem?id=1042还是粘一下题原题题意分析首先要弄清楚,在我看来是最重要的一句话是,每个鱼池只经过一次,只能按照从左向右的顺序访问。并不是每个池塘都必须停下来钓鱼。这句话太重要了,没有这句话,这个题直接就上难度了。也就是说如果有1,2,3,4个池塘。那么可以选择只钓1,3两个池塘的。2只是路
2011-11-10 21:08:12
3089
3
原创 POJ 1009题解
题意就是给定一个图的RLE表示。然后求这个图的每个像素点的绝对值。每个像素点的绝对值由其周围的8个点的最大绝对值来决定。从给的两个图应该可以看出来了。不多说了。限制:数量级很大,时间要求很短。要求需要处理好内存的关系与时间的关系。首先你是不可以把整个图按其真实情况存放起来的。那么需要按照如下方式处理:由于相同的点是连续的,那么在处理时,这些连续的点中间的
2011-11-09 22:28:40
861
原创 素数
素数一直是个头疼的话题,不过最好还是克服一下。至少知道如何来进行处理。求a^b那种老掉牙的for循环就不要写了吧。这里粘个高效的。templateT _exp(T a, T b){ T odd = 1; while (b > 1) { if (b&1) odd *= a; a *= a; b >>= 1; } return a*odd;}求a^b
2011-11-08 21:50:30
692
原创 ACM 算法艺术与信息学竞赛 1.2.7 超长数字串
题意顺序打印的字符串123456789101112131415161718~~~~要找到给定数字串第一次出现的位置。比如10第一次出现在10,1011也是出现在10位置。1第一次出现在1。分析:按照书上所说的枚举的思想来进行处理。思想主要是分段,比如123可以分为1,2,3一个段也可以分为3[123]13的一部分那么在考虑分段时,主要采用
2011-11-05 15:18:05
2847
原创 二进制位交换 反转 计数
如何交换一个整形数的二进制表示的其中两位.比如要把a,与b进行交换。那么方法如下:x表示任意值。xxxx xxxx xxxx xaxx xxxx xxbx xxxx xxxx分为两步:第一步:首先要求得xxxx xxxx xxxx x0xx xxxx xx0x xxxx xxxx第二步:在第一步的基础上加上:0000 0000 0000 0b00 0000 00
2011-11-03 12:39:49
5073
原创 二分查找之变形
//寻找一个数,找到刚好比他小的数。比如-1 1 1 1 2 ~~~如果要找1,那么返回的是-1的位置0。如果1开头,那么返回位置-1.int lbs(int *a, int n, int v){ int b = 0, e = n, m; while (b < e){ m = b + ((e - b) >> 1); if (a[m] >= v) e = m; els
2011-10-31 15:14:28
1069
原创 POJ 1205
这里说一下题意,对于排成一排的N个城市,有一条河与这一排城市平行。那么城市在排污水的时候,可以有三种选择,用根管子,连到左边的城市(如果有的话),把污水通过这根管子排到左边的城市 。设置这种方式编号为这个城市自己排到河中。编号为|同样的方式排到右边的城市。编号为?举例如:N= 1, 这个城市可以有编号|种排法。N=2 ||, || 种排法当有K个
2011-10-30 22:38:19
1632
精通正则表达式PDF
2010-03-05
Ubuntu编译Linux-0.11运行
2009-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人