摘要:
Problem 1:一个数组中有一个数字a只出现一次,其他数字都出现了两次。请找出这个只出现一次的数字?考察知识点:异或运算思路:比如数字 b^b = 0 a^0 = a因此,可以将数组中的所有数字进行异或,而最终异或的结果即为所求只出现一次的数字a.代码:1 def SingleNu... 阅读全文
摘要:
本文转自:http://www.cnblogs.com/freewater/archive/2012/08/23/2652974.html问题描述:有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。解题思路:假设数组A[1..2N]所有元素的... 阅读全文
摘要:
问题描述:我们之前在前面分析了一维数组的子数组最大值的问题,那么如果是二维数组又该如何分析?一维数组分析:http://www.cnblogs.com/panpannju/p/3732201.html解法:1. 暴力解法-------O(N^2*M^2*Sum)2. 分块计算-------O(N^2... 阅读全文
摘要:
问题描述:设计一个算法,把一个含有N元素的数组循环左移或者右移K位。解决方法:1. 暴力解法------O(KN)2. 颠倒位置------O(N)具体思路和代码:1. 暴力解法------O(KN)思路:循环K次,每次移动一位代码: 1 //右移 2 void s1(int A[], int n,... 阅读全文
摘要:
问题描述:给定一个无序的数组,求至少插入多少次可以使得这个数组有序?例如:5,1,2,3 经过一次插入 1,2,3,5思路:其实只要保证原始数组中最长的递增的那些数字保持不动,其余的数字依次插入即可。 因此该问题转变成求最长递增序列。 利用数组,d[i]表示从位置0到位置i最长的递增子序列... 阅读全文
摘要:
问题描述:一个有N个整数元素的一维数组(A[0], A[1], A[2],...,A[n-1]),这个数组当然有很多子数组,那么子数组之和的最大值是什么呢?解法:1. 暴力解法-------O(N^3)2. 改进版暴力解法-------O(N^2)*3. 分治算法-------O(NlogN)(暂时... 阅读全文
摘要:
问题描述:能否快速找到一个数组中的两个数字,让这两个数字之和等于一个给定的数字,为了简化起见,我们假设这个数组中肯定存在这样一组或以上符合条件的解。这里我们只考虑一种解的情况。解法:1. 暴力解法------O(n^2)2. 排序+二分查找------O(nlogn)3. hash表查找------... 阅读全文
摘要:
问题描述:给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合乘积中最大的一组,并写出算法的时间复杂度。解法:1.暴力解法------O(n^2)2.前后缀法------O(n)3.统计法--------O(n)具体思路和代码:1.暴力解法:思路:利用两层循环,依次删掉... 阅读全文
摘要:
大数是指计算的数值非常大或者对运算的精度要求非常高,用已知的数据类型无法精确表示的数值。大数问题主要有以下四种:==================================1. 大数相加2. 大数相乘3. 大数阶乘4. 大数幂乘================================... 阅读全文
摘要:
本章内容================================(一)什么是k-近邻分类算法(二)怎样从文件中解析和导入数据(三)使用Matplotlib创建扩散图(四)对数据进行归一化=================================(一) 什么是k-近邻分类算法简单地说... 阅读全文