#include "stdafx.h"#include #include int _tmain(int argc, _TCHAR* argv[]){ int a[5] = {0,2,5,7,8}; int b[5] = {1,3,4,6,9}; int c[10],i,x...
分类:
编程语言 时间:
2015-11-24 18:33:29
阅读次数:
170
两个有序数组找出相同数据,要求最简单的算法复杂度。class Program { static void Main(string[] args) { int Low = 0; int[] m = new int[] { 2...
分类:
编程语言 时间:
2015-11-19 18:14:46
阅读次数:
139
1.基本思想将两个有序的数组归并成一个更大的有序数组,很快人们就根据这个操作发明了一种简单的递归排序算法:归并排序。要将一个数组排序,可以先(递归地)将它分成两半分别排序,然后将结果归并起来。你将会看到,归并排序最吸引人的性质是它能够保证将任意长度为N的数组排序所需时间和NlogN成正比;它的主要缺...
分类:
编程语言 时间:
2015-11-18 19:27:08
阅读次数:
581
题意: 给两个有序(升or降)的数组,求两个数组合并之后的中位数。思路: 按照找第k大的思想,很巧妙。将问题的规模降低,对于每个子问题,k的规模至少减半。考虑其中一个子问题,在两个有序数组中找第k大,我们的目的只是将k的规模减半而已,所以可以对比nums1[k/2]和nums2[k/2]的大小,.....
分类:
其他好文 时间:
2015-11-16 14:04:52
阅读次数:
141
最近看一本书上有一个面试题, 原题目是 有两个递增数组 A1 A2, A1的内存空间足够长, 现在要求合并 A2到A1,并且要求移动次数最小 ,面试的时候 我们尽量要以 最高效的方式完成 ,下面是此题 O(n)解法。void ReplaceCharInEnoughMemory(char*pStr)
{
if(pStr==0)
return ;
//计算空格...
分类:
移动开发 时间:
2015-11-11 16:33:04
阅读次数:
217
在进行参数试错时,通常将可能的参数由小到大排列一个个进行测试,这样的测试顺序很多时候不太合理,因此写了一个按二分法遍历顺序排列的算法,通常能更快的找到合适的参数。代码如下:/*************************************************Function: ...
分类:
编程语言 时间:
2015-11-11 11:15:35
阅读次数:
180
题意: 四个集合,要求每个集合中选出一个数字,四个数字相加为0,问四个数字相加为零的次数有几次分析: 先把A+B的和存到sum数组里,然后再从中找-(c+b)出现的个数。求长度为n的有序数组a中的数k的个数num:num=upper_bound(a,a+n,k)-lower_bound(a,a+.....
分类:
其他好文 时间:
2015-11-07 23:12:50
阅读次数:
304
题目来源: https://leetcode.com/problems/search-for-a-range/题意分析: 给定一个有序数组,和一个target。返回这个target的最左和最右位置,如果没有找到返回[-1,-1]。解题的时间复杂度要求是log(n)。题目思路: 这里分3步二分...
分类:
编程语言 时间:
2015-10-28 21:12:05
阅读次数:
184
题目描述: 给定两个有序数组arr1和arr2,在给定一个整数k,返回两个数组的所有数中第K小的数。 例如: arr1 = {1,2,3,4,5}; arr2 = {3,4,5}; K = 1; 因为1为所有数中最小的,所以返回1; arr1 =...
分类:
编程语言 时间:
2015-10-16 13:22:51
阅读次数:
174
题目描述: 给定两个有序数组arr1和arr2,两个数组长度都为N,求两个数组中所有数的上中位数。 例如: arr1 = {1,2,3,4}; arr2 = {3,4,5,6}; 一共8个数则上中位数是第4个数,所以返回3。 arr1 = {0,1,2}...
分类:
编程语言 时间:
2015-10-16 13:21:29
阅读次数:
278