自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SURE

关键的一年,工作工作!

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 二维数组

<br />定义了一个二维数组,要用指针指向其地址,需要定义指向N个类型数数组的指针,作为参数传递的时候需要至少定义第二维的大小。因为二维数组指针是有大小的。<br /> <br />int array1[][5] = { {1, 2, 0, 3, 4}, {2, 3, 4, 5, 1}, {1, 1, 5, 3, 0} }; int (*p)[5] = array1; int *q = array1[1]; int *qq = &array1[0

2011-03-21 13:25:00 440

原创 二维数组的问题

定义了一个二维数组,要用指针指向其地址,需要定义指向N个类型数数组的指针,作为参数传递的时候需要至少定义第二维的大小。 int array1[][5] = {     {1, 2, 0, 3, 4},     {2, 3, 4, 5, 1},     {1, 1, 5, 3, 0} }; int (*p)[5] = array1; int *q = array1[1]; int *qq = &array1[0][0]; 用其他的方式不能取得二维

2011-03-21 13:09:00 427

转载 A* 算法

<br />A*高效搜索算法 2006/09/11 rickone<br />了解了基本搜索算法,下面就来看A*,神奇的A*。(--->搜索方法小结)<br />A*是一种启发式搜索,一种有序搜索,它之所以特殊完全是在它的估价函数上,如果我要求的是从初始结点到目的结点的一个最短路径(或加权代价)的可行解,那对于一个还不是目标结点的结点,我对它的评价就要从两个方面评价:第一,离目标结点有多近,越近越好;第二,离起始结点有多远,越近越好。记号[a,b]是表示结点a到结点b的实际最短路径代价。设起始结点为S,当前

2011-03-11 18:04:00 713

原创 在字符串中删除特定的字符

<br />63.在字符串中删除特定的字符。<br />题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。<br />例如,输入”They are students.”和”aeiou”,<br />则删除之后的第一个字符串变成”Thy r stdnts.”。<br /> <br /> <br />string firstStr,secondStr;<br />int m = firstStr.size();<br />int n = secondStr.size();<br />char o

2011-03-08 18:24:00 682

原创 1,2序列求和100

1,2组成一个序列,是其求和结果为100.如果都是1的话需要序列的长度为100;长度为99的话需要一个2,在99个位置上找一个为2;……(100,0)+(99,1)+……+(50,50)

2011-02-28 19:53:00 643 1

转载 浮点数的存储方式

C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。<br />    无论是单精度还是双精度在存储中都分为三个部分:符号位(Si

2011-02-22 19:30:00 680 1

原创 C语言优先级——取反和移位

遇到一个面试题:unsigned char a=0xA5;unsigned char b=~a>>4;结果是245,提示的是先提升类型然后移位,然后取反,然后截断。但是单目运算符的优先级高于移位运算符啊,难道因为~是自右向左结合的?

2011-02-22 18:52:00 3235 2

转载 C歧义

<br />我们可以看到很多C语言相关的一些东西。比如《语言的歧义》主要告诉了大家C语言中你意想不到的错误以及一些歧义上的东西。而《谁说C语言很简单》则通过一些看似你从来不可能写出的代码来告诉大家C语言并不是一件容易事情。《6个变态的hello world》和《如何弄乱C的源代码》则以一种极端的方式告诉大家,不要以为咱们自己写不出混乱的代码,每个程序员其实都有把代码搞得一团乱的潜质。通过这些文章,相信你对编程或是你觉得很简单的C语言有了一些了解。是的,很不容易吧,以前是不是低估了编程和C语言?今天是否我们又

2011-01-12 19:17:00 668

转载 Visual C++ sprintf()函数用法

连接字符串  sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连  接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时  在它们中间插入别的内容,总之非常灵活)。比如:  char* who = "I";  char* whom = "CSDN";  sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "  strcat 只能连接字符串(一段以’’结尾的

2010-12-18 14:33:00 2999

转载 程序员面试题精选(02)-设计包含min函数的栈

<br />程序员面试题精选(02)-设计包含min函数的栈<br />题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。 分析:这是去年google的一道面试题。<br />我看到这道题目时,第一反应就是每次push一个新元素时,将栈里所有逆序元素排序。这样栈顶元素将是最小元素。但由于不能保证最后push进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈了。<br />在栈里添加一个成员变量存放最小元素(或最小元素的位置

2010-12-12 23:23:00 568

转载 程序员面试题精选(03)-求子数组的最大和

<br />程序员面试题精选(03)-求子数组的最大和<br />题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。<br />例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。<br />分析:本题最初为2005年浙江大学计算机系的考研题的最后一道程序设计题,在2006年里包括google在内的很多知

2010-12-12 23:21:00 374

转载 程序员面试题精选(04)-在二元树中找出和为某一值的所有路径

<br />程序员面试题精选(04)-在二元树中找出和为某一值的所有路径<br />题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。<br />例如输入整数22和如下二元树<br />                                            10<br />                                           /   /<br />                

2010-12-12 23:18:00 484

转载 题目:输入n个整数,输出其中最小的k个。

<br />题目:输入n个整数,输出其中最小的k个。<br />例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。<br />分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nlogn)。我们试着寻找更快的解决思路。<br />我们可以开辟一个长度为k的数组。每次从输入的n个整数中读入一个数。如果数组中已经插入的元素少于k个,则将读入的整数直接放到数组中。否则长度为k的数组已经满了,不能再往数组里插入

2010-12-12 23:17:00 2882

转载 程序员面试题精选(06)-判断整数序列是不是二元查找树的后序遍历结果

程序员面试题精选(06)-判断整数序列是不是二元查找树的后序遍历结果 题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / / 6 10 / / / / 5 7 9 11因此返回true。如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回f

2010-12-12 22:30:00 439

转载 题目:求1+2+…+n

<br />题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。<br />分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相关技术理解的深刻程度。<br />通常求1+2+…+n除了用公式n(n+1)/2之外,无外乎循环和递归两种思路。由于已经明确限制for和while的使用,循环已经不能再用了。同样,递归函数也需要用if语句或者条件

2010-12-12 22:28:00 1468

转载 程序员面试题精选(09)-查找链表中倒数第k个结点

<br />程序员面试题精选(09)-查找链表中倒数第k个结点<br />题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: struct ListNode<br />{<br />      int       m_nKey;<br />      ListNode* m_pNext;<br />};<br />分析:为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。可是输入的是单向链表,只有从前往后的指针而没有从后往前的指针

2010-12-12 22:27:00 445

转载 程序员面试题精选(10)-在排序数组中查找和为给定值的两个数字

<br />程序员面试题精选(10)-在排序数组中查找和为给定值的两个数字<br />题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。<br />例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。<br />分析:如果我们不考虑时间复杂度,最简单想法的莫过去先在数组中固定一个数字,再依次判断数组中剩下的n-1个数字与它的和是不是等于输入的数

2010-12-12 22:25:00 536

转载 程序员面试题精选(11)-求二元查找树的镜像

<br />程序员面试题精选(11)-求二元查找树的镜像<br />题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入:<br />     8<br />    /  /<br />  6      10<br />//       //<br />5  7    9   11<br />输出:<br />      8<br />    /  /<br />  10    6<br />//     

2010-12-12 22:24:00 461

转载 程序员面试题精选(14)-圆圈中最后剩下的数字

<br />程序员面试题精选(14)-圆圈中最后剩下的数字 <br />题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。<br />分析:既然题目有一个数字圆圈,很自然的想法是我们用一个数据结构来模拟这个圆圈。在常用的数据结构中,我们很容易想到用环形列表。我们可以创建一个总共有m个数字的环形列表,然后每次从这个列表

2010-12-12 22:24:00 440

转载 程序员面试题精选(01)-把二元查找树转变成排序的双向链表

<br />题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。<br />  比如将二元查找树<br />                                            10<br />                                          /    /<br />                                        6       14<br />           

2010-12-12 22:23:00 405

转载 翻转句子中单词的顺序

<br /><br />程序员面试题精选(07)-翻转句子中单词的顺序<br />题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。<br />例如输入“I am a student.”,则输出“student. a am I”。<br />分析:由于编写字符串相关代码能够反映程序员的编程能力和编程习惯,与字符串相关的问题一直是程序员笔试、面试题的热门题目。本题也曾多次受到包括微软在内的大量公司的青睐。<br />由于本题需

2010-12-12 22:21:00 765

转载 第一个只出现一次的字符

<br />这个是很老的题目了。 字符串,第一个只出现一次的字符。 思路是,26个字母,小写的,统计每一个字符出现的次数,现在大多数都是只有小写的。不知道为何,没有人统计大写的字符呢? 小写字母的ASCII大32位,为何没有这么处理呢? 但是在,总体来说,这个题目其实不算难,只要首先扫描统计一下就行了。然后再追个扫描一下,看看该字母的次数是否为1。 有个分析说是用哈希表,意思也是一样的。 http://blog.csdn.net/adcxf/archive/2008/10/12/3066192.aspx

2010-12-12 22:20:00 309

转载 约瑟夫环问题

约瑟夫环问题,用求余的操作!

2010-09-08 15:17:00 393

空空如也

空空如也

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

TA关注的人

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