摘要: 1. printf函数在计算参数时是从右向左进行计算的。2. 编程风格: if ( 'A' == a ) 要比 if (a =='A' )好 在将==写成= 时候比较有效。3. a 和 b实现交换的方法: 方法1: a = a + b; b = a - b; a = a - b; 不足之处在于如果a,b都很大时,a+b的值容易溢出。 方法2: a = a ^ b; b = a ^ b; a = a ^ b;4. 在C++程序中调用被C编译器编译后的函数,为什么要加extern "C"? 答:C++语言支持函数重载,C语言不支持函数重载。函数被 阅读全文
posted @ 2012-02-21 22:42 Never To Say Impossible 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。分析:这是一道广为流传的面试题,包括百度、微软和Google在内的多家公司都曾经采用过这个题目。要几十分钟的时间里很好地解答这道题,除了较好的编程能力之外,还需要较快的反应和较强的逻辑思维能力。看到这道题,我们马上就会想到,要是这个数组是排序的数组就好了。如果是排序的数组,那么我们只要遍历一次就可以统计出每个数字出现的次数,这样也就能找出符合要求的数字了。题目给出的数组没有说是排好序的,因此我们需要给它排序。排序的时间复杂度是O(nlogn),再加上遍历的时间复杂度O(n),因此总的复杂度是O(nlogn)。接下来我们试着看看 阅读全文
posted @ 2012-02-21 14:41 Never To Say Impossible 阅读(164) 评论(0) 推荐(0) 编辑