![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Jobs
忆之独秀
Engineer
展开
-
面试算法题:忘我之乘积分析
题目:给你一个数组A[1..n],请你在O(n)的时间里构造一个新的数组B[1..n],使得B[i]=A[1]*A[2]*...*A[n]/A[i]。你不能使用除法运算。分析:要求在不使用除法的情况下计算B[i]=A[1]*A[2]*...*A[n]/A[i],变换一个公式得到B[i]=A[1]*A[2]*A[3]*...*A[i-1]*A[i+1]*...*A[n],一共n-1次乘法原创 2013-07-06 15:33:01 · 1699 阅读 · 0 评论 -
数组排序--计算最小交换次数
给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序。求最少需要多少次交换,能把数组排成按1-n递增的顺序,其中,数组长度不超过100。例如:原数组是3,2,1, 我们只需要交换1和3就行了,交换次数为1,所以输出1。原数组是2,3,1,我们需要交换2和1,变成1,3,2,再交换3和2,变为1,2,3,总共需要的交换次数为2,所以输出2。算法原创 2013-11-26 21:04:55 · 15970 阅读 · 1 评论 -
面试算法题:乾坤大挪移(链表旋转K个位置)
题目:给定一个单向链表,设计一个算法实现链表向右旋转K个位置。K是非负的整数。举例:给定:1->2->3->4->5->6->null 并且 K=3;则有:4->5->6->1->2->3->null。分析:这道题看上去简单,但是能耐做到bug free还是需要仔细思考的。思考一些细节:1.当K=0,怎么办?2.当K等于链表长度时,怎么办?3.当K大原创 2014-02-24 16:53:43 · 1572 阅读 · 0 评论 -
一道简单的C语言题
看一下下面的一段简单的C语言程序,它的输出结果是多少:#include<stdio.h>#include<string.h>int main(){ int a=257; char buf[5] = "aaaa"; strcpy(buf ,(char*)&a); printf("%d\n",strlen(buf));...原创 2014-03-23 16:35:39 · 1383 阅读 · 0 评论 -
简单的面试算法题:非循环求字符串长度和字符串拷贝源函数
1.如何不调用库函数且不用循环的原创 2014-05-17 16:40:25 · 1509 阅读 · 0 评论