自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

思考,思考,再思考~

每天学习一个新知识,写一个小程序...

  • 博客(18)
  • 资源 (5)
  • 收藏
  • 关注

原创 每日一题(95) - 两个有序数组元素之积、和的最小K个值

题目来自阿里面试题目题目(1)已知A B两个数组,元素有序,构造新的集合S={x*y | x属于A, y属于B} 求S中最小的k个元素,最优解法。(2)已知A B两个数组,元素有序,构造新的集合S={x+y | x属于A, y属于B} 求S中最小的k个元素,最优解法。思路:这两个题本质上属于同一个题目,可以使用同一个思路做。思路(1) 暴力解决,此时时间复杂度为O(n^2)

2013-09-30 10:56:22 2452 2

原创 每日一题(94) - 堆排序

题目:基于数组的堆排序思路:主要分为两步(1)对无序数组调整成大根堆(从小到大的排序) 对非叶子结点进行调整  从最后一个非叶子结点开始,一直到根结束 每次调整,都调整一条路径,从待调整元素的位置开始,一直到叶子结点为止。(2)把堆顶与待排序的最后一个元素交换,之后调整堆代码:void Swap(int& nFirst,int& nSec){ int nTm

2013-09-20 20:17:05 1324

转载 如何预测用户query意图

转载于博客园的文章:如何预测用户query意图有一个朋友问,一个用户搜索一个query是“百度”,怎么知道用户真正是想找什么呢。我回答说,分析之前搜索这个query的用户点了些什么结果啊。朋友继续问,如果没有用户点击呢。呃,如果没有点击,这个问题就比较复杂了。整理了下思路,于是写成了本文。主要描述了关于如何预测用户query意图。希望会有所帮助。首先我们

2013-09-18 18:29:14 1909

原创 每日一题(93) - 字符串截断

题目:编写字符串截断函数char ** StrToK(const char* S1, const char* S2)。功能:字符串S2对字符串S1进行截断,并分别输出截断的字符串举例:S1=abcdefg, S2=be,最后返回一个字符串数组,将a,cd,fg三个字符串用指向指针的指针返回。思路:遇到相等字符或者字符串结束符,则表示每一行字符串结束陷阱:(1)函数返回指向指针的

2013-09-18 16:16:41 1503 2

原创 素数的求解

素数的定义定义:在一个大于0的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。问题 1、判断一个数是否为素数问题 2、判断[1,n]之间的素数------------------------问题 1、判断一个数是否为素数思路(1) 试除法基本思路:判断n是否为素数时,检查区间[2,n - 1]之间的数是否能整除n。代码:bool IsPrime(i

2013-09-17 08:25:09 2940 4

转载 TCP为什么要三次握手,不是两次四次

TCP为什么要三次握手,不是两次四次?第三次握手——革命斗争中的通信故事在革命战争影片中,经常会看到英勇的解放军战士背着步话机在喊“长江长江,我是黄河,听到请回答。”很明显,这是呼号为黄河的一方想找呼号为长江的另一方说事,为了保证影片的节奏,导演往往把后面的联络过程省略了,其实后面还有两步,长江听到黄河的呼叫后要回答“黄河黄河,我是长江,我听到了你,请回

2013-09-13 17:21:13 1556 2

转载 TCP连接的建立 (三次握手) 和释放 (四次握手)

TCP报文段首部格式:序号:本报文段所发送的数据的第一个字节的序号。确认号ack:期待收到对方下一个报文段的第一个数据字节的序号确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。              若同意连接,则在响应报文段中使得

2013-09-13 16:27:32 4386

原创 每日一题(92) - 归并排序

题目来自网络题目(1):基于数组的归并排序题目(2):基于链表的归并排序----------题目(1):基于数组的归并排序思路:借助分治的思想,总是先对待排序进行分割,之后再对两个子序列进行合并,生成一个有序序列。时间复杂度为O(nLogn),空间复杂度为O(n)代码:void Merge(int nArr[],int nStart,int nM

2013-09-11 13:03:30 961

原创 每日一题(92) - 快速排序

题目来自网络题目(1):基于数组的快速排序题目(2):基于链表的快速排序----题目(1):基于数组的快速排序思路:使用分治的思想,先选择枢轴,之后执行一次划分,并把原序列划分两个子序列,之后递归处理。代码:int partition(int nArr[],int nStart,int nEnd){ int nKey = nArr[nSt

2013-09-10 08:16:52 1212

原创 每日一题(91) - 插入排序

题目来自网络题目(1):基于数组的插入排序代码:void InsertSort(int nArr[],int nLen){ int j = 0; for (int i = 2;i <= nLen;i++) { if (nArr[i] < nArr[i - 1]) { nArr[0] = nArr[i]; j = i - 1; while(nArr[0

2013-09-09 20:39:50 30494

原创 每日一题(90) - 磁带文件存放优化

题目和思路均来自编程之美题目:磁带上有n个文件,长度分别为L[0],L[1], ..., L[n-1]且被访问的概率分别为P[0],P[1],...,P[n-1]。要访问磁带上第n个文件,须要依次经过前面n-1个文件。分别给出三种情况,求如何安排文件在磁带上的存储顺序,使得访问这些文件所需经过的平均磁带长度最短? 每一个文件被访问的概率相等,但文件长度不同,求所有文件的存储顺序。

2013-09-07 23:01:10 2663 1

原创 背包问题九讲笔记_多重背包

摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理解。本文包含的内容: 问题描述 基本思路(和完全背包类似) 转换为01背包问题求解(直接利用01背包)---------------------------------------------1、问题描述已知:有一个容量为V的背包和N件物品,第i件物品最多有Num[i]件

2013-09-05 21:56:22 11079 3

原创 每日一题(89) - 两个字符串进行加减

题目来自网络题目描述通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。补充说明:1. 操作数为正整数,不需要考虑计算结果溢出的情况。2. 若输入算式格式错误,输出结果为“0”。要求实现函数: void arithmetic(const char

2013-09-05 18:40:46 3555

原创 每日一题(88) - 字符串压缩

题目来自网上题目描述:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"

2013-09-04 21:26:41 1439

原创 每日一题(87) - 字符串过滤

题目来自网上题目描述通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr: 输入字符串,lInputLen:

2013-09-04 21:02:29 1340

原创 背包问题九讲笔记_完全背包

摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理解。本文包含的内容:---------------------------------------------完全背包问题描述已知:有一个容量为V的背包和N件物品,第i件物品的重量是weight[i],收益是cost[i]。条件:每种物品都有无限件,能放多少就放多少。问题:在不超

2013-09-04 20:34:49 21525 5

原创 每日一题(86) - 计算两个字符串的最长公共子序列(LCS)

题目来自网上题目:求解两个字符串的最长公共子序列举例:strA = "ABCBDAB"strB = "BDCABA"字符串strA和strB的LCS为4.思路:DP代码#include #include #include using namespace std;/*f[i][j]:表示字符串strA[0~i]和字符串strB[0~j]最长公共子序列的长度

2013-09-03 20:09:50 1353

原创 每日一题(85) - 编写strcpy函数

题目来自网络题目:编写strcpy函数。函数声明:char *strcpy(char* dest, const char *src)功能:把src指向的字符串复制到以dest开始的地址空间说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串思路:直接拷贝吧,但是需要注意几个问题,容易出错。(1)拷贝前需要把目的地址的首地址拷贝出来。犯过

2013-09-03 19:28:08 1016

基于链表的快排,只改变结点内容,但不改变链表指向

基于链表的快排,只改变结点内容,但不改变链表指向 C++实现

2013-09-11

c++实现基于链表的快排,改变链表指向,不改变结点指针

基于链表的快排,改变链表指向,不改变结点指针、c++代码

2013-09-11

算法合集之《后缀数组——处理字符串的有力工具》

后缀数组的倍增算法和DC3算法的实现以及不可重叠重复子串的问题,很详细的资料

2013-07-13

指针与C程序效率教学探究(指针与数组效率对比)

指针与C程序效率教学探究(指针与数组效率对比),介绍了指针比数组好的原因

2013-06-04

C++写的各种QSort

C++写的各种QSort,还有效率对比代码..

2012-07-29

空空如也

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

TA关注的人

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