##题目:请实现一个函数,把字符串中的每个空格替换成%20。例如输入“We are happy.",则输出”We%20are%20happy."。最容易想到的是,从头到尾扫描,每次碰到空格就替换。但是时间复杂度为o(n2)。时间复杂度为o(n)的解法是:首先遍历字符串,统计出字符串中空格的总数,然后...
分类:
其他好文 时间:
2015-07-13 20:22:53
阅读次数:
93
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。如果去掉约束条件:并保证奇数和奇数,偶数和偶数之间的相对位置不变?思路:如果要保证奇数和奇数,偶数和偶数之间的相对位置不变...
分类:
编程语言 时间:
2015-07-13 18:29:03
阅读次数:
184
题目:在一个二维数组中,每一行都按照从左到右的递增顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。分析:数组如下所示方式大致如下:选择的应该是右上角或者左下角。// 二维数组matrix中,每一行都从左到右递增排序,// 每一列...
分类:
编程语言 时间:
2015-07-13 17:57:28
阅读次数:
127
思路: 利用二分查找,分别查找待统计数字的头和尾的下标,最后做差加一即为结果。C++: 1 #include 2 #include 3 using namespace std; 4 5 int GetFirstK(vector& nums, int startpos, int endpos,...
分类:
编程语言 时间:
2015-07-12 17:24:20
阅读次数:
146
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路:关键注意①每一圈中四条边的边界,要每...
分类:
其他好文 时间:
2015-07-10 11:12:40
阅读次数:
102
题目:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1],不能使用除法。解题思路例如:A[]={1,2,3}求B[]
B[0]=A[1]×A[2]=2×3=6
B[1]=A[0]×A[2]=1×3=3
B[2]=A[0]×A[1]=1×2=21.B[0]初始化为1,从下标i=...
分类:
编程语言 时间:
2015-07-10 09:28:52
阅读次数:
819
数组中任取两个数字,如果前面的数字大于后面的数字称为一个逆序对如:1,2,1,2,1 有3个逆序对思路:知道O(N2)肯定是错的。开始想hash,试图找到O(n)的算法,想了很久,找不到。后来想到排序,用原数组与排好序的数组对比,我写的快排,还是不对。想了几个小时,无奈看答案,原来是用变形的归并排序...
分类:
编程语言 时间:
2015-07-10 00:20:27
阅读次数:
146
转载请注明出处:http://blog.csdn.net/ns_code/article/details/27110873 剑指offer上的字符串相关题目。 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。比如。输入”They are students.”和”aeiou”,则.....
分类:
其他好文 时间:
2015-07-09 12:47:21
阅读次数:
134
思路:应该是用二分查找分别找到该数字第一次和最后一次出现的位置,相减即可。O(logn)int findLeft(int a[], int n, int num){ int l = 0, r = n - 1; while(l = 0 && a[l] == num) //找左边界 ...
分类:
编程语言 时间:
2015-07-08 22:10:48
阅读次数:
161
Java类加载过程:(以A.class为例)1.定位A.class类,并调用findLoaderClass(string)判断这个类是否已经存在2.先执行父类中static成员变量与static方法块3.再执行子类中static成员变量与static方法块4.接着执行父类中非static成员变量、非...
分类:
编程语言 时间:
2015-07-08 20:48:08
阅读次数:
140