自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (3)
  • 收藏
  • 关注

原创 二维矩阵求解最大移动距离

问题: N*N的表格中存放自然数,从任意位置开始,表格中的数字可以向四邻域移动(前提是移动方向上的数字必须小于当前数字),移动一次距离加一。求最大移动距离? 分析: 问题可以看成是一个动态规划问题,H[i][j] = max{H[i-1][j], H[i+1][j], H[i][j-1], H[i][j+1]} + 1,其中满足a[i][j] > a[i-1][j]等条件。 经过和GJ

2012-08-31 23:50:00 969

原创 插座问题

题目: 设有28盏灯,拟公用一个电源,则至少需有4插头的接线板数多少个? 分析: 看到这个题,可以将插座相连的情况看做一棵树,那么我们可以采用树的特性来求解。 假设需要的接线板数目为X,我们可以得到如下不等式 4 * X >= 28 + ( X - 1) 其中不等式左边表示X个插座共有4*X个接口;等式右边表示插座提供的接口一部分给用户用:28个,另外一部分用来接插板自身的插头,这里有

2012-08-31 16:21:22 2139

原创 字符串转移问题

问题: 函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*' 分析: 由于问题的特殊性,我们可以直接将字符往后移,那么前面的位置全部用'*'填充,具体代码如下: #include #include using namespace std; /* * 这个方法将'*'往前移 */ int change1(char *str) { int i,

2012-08-31 00:33:33 1169

原创 求解1-10000区间内的素数

问题: 求出所有1-MAX之间的素数 分析: 我们知道如何判断一个数是否为素数,判断number是否可以被1到sqrt(num)之间数整除,如果存在被整除的,不是素数,否则就是素数。 但是,如果用这种方法来计算,时间复杂度会非常高,我们采用另一种更好的方法——筛选法。 筛选法直观上比较好理解,从2开始,删除所有2*p(p>=2),然后再选取下一次没有被删除的数t,同样删除t*p(p>=2

2012-08-27 21:52:24 5060 1

原创 颠倒栈

问题: 用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1在栈顶。颠倒之后的栈为{5, 4, 3, 2, 1},5处在栈顶。 分析: 问题很简单,可以直接使用两个堆栈就行,一个pop,一个push,这样就颠倒了,但是如果加强问题,不能使用另一个栈,我们可以考虑使用递归调用(实际上递归调用也用到了栈,只是在程序调用时用到的)。程序执行分为两部分:1,reverse_stack,

2012-08-26 13:04:16 966

原创 加法运算

题目: 写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。 分析: 由于不能使用四则运算,我们可以考虑使用其他的操作,考虑是用位操作,来模拟加法操作,首先不考虑进位,使用异或操作,然后再考虑进位,使用与操作,再将进位与异或的结果进行相加,由此循环,进位为0停止。 算法代码如下: #include #include #include using namespac

2012-08-26 09:57:16 775

原创 O(n)时间的排序

问题: 某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。 分析: 《算法导论》中提到,所有基于比较排序的算法,时间复杂度最低为O(nlogn),所以不能采用普通的比较排序(堆排,快排等),采用计数排序或者基数排序,桶排等。我们采用计数排序,统计一个区间内所有数字出现的次数(这是由问题的特殊性决定的),然后再输出到数组中。 算法

2012-08-25 12:08:30 5236

原创 字符串的组合

问题: 输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。 分析: 以前做过类似的题目,求解字符串所有的排列,采用的递归思路。 二进制方法 这个题我想到的第一种方式是考虑到2^n的特殊性,如果字符串长度为5,我们可以有2^5中组合方式,则用二进制表示,第i位为1,表示输出string[i];如果为0,则不输出。

2012-08-25 10:52:34 850

原创 数对之差的最大值

问题:在数组中,数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。  例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。 分析: 1,分治法 将一个数组分为两部分,分别求解左边最大之差和右边最大之差,合并的时候再计算左边最大值和右边最小值之差 算法如下: #include #include #include

2012-08-25 10:05:16 836

原创 腾讯笔试题

#include using namespace std; class ClassA { public: virtual ~ ClassA() { } ; virtual void FunctionA() { } ; }; class ClassB { public: virtual void FunctionB() {}; }; class ClassC: public

2012-08-18 17:45:12 614

原创 【编程之美】 4.8统计所有蚂蚁出去的时间

蚂蚁爬杆的算法中,只求出了蚂蚁出杆的时间,但是没有得到每个蚂蚁出去的时间,这里没有固定的算法,采用编程模拟实现,代码如下: #include using std::cout; using std::endl; using std::swap; int left[29]; int right[29]; void fun() //首先判断是否在同一个位置,如果两个蚂蚁处于同一位置,交换两个蚂蚁的方向

2012-08-18 10:49:47 873

原创 求解二进制数中1的个数

这道题很多考试中都出现了,去年参加阿里笔试就考到了这道题,编程之美也提到了,比较好的方法采用位操作,解决方法如下: 执行一次x&(x - 1),将最右边的1置为0,知道最后x变为0,循环结束,时间复杂度是O(M),其中M是二进制数中1的个数。 另一种解法,时间复杂度是log(n),其中n是二进制数总的位数 #include int main() { unsigne

2012-08-14 00:35:12 810

cc2431定位原理手册

This document describes the location engine implemented in the CC2431. CC2431 is a ZigBee system on chip, so it will be natural to use the location engine in a ZigBee network. This manual is written to be as general as possible and will not describe any protocol specific considerations.

2009-12-07

cc2430中文使用手册

CC2430/CC2431 是Chipcon 公司推出的用来实现嵌入式ZigBee 应用的片上系统。它支持 2.4GHz IEEE 802.15.4/ZigBee 协议。根据芯片内置闪存的不同容量,提供给用户3 个版本,即 CC2430-F32/64/128,分别对应内置闪存32/6 4/128 KB

2009-12-07

基于ARM嵌入式实验报告

嵌入式的实验报告,实现bmp和gif图在博创和周立功实验板上的显示!

2009-04-11

空空如也

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

TA关注的人

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