
编程之美
文章平均质量分 57
lxqfirst
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
子数组最大乘积
思路: 统计数组中正数、负数、0的个数: 1.数组中有多于一个零则最大乘积为0; 2.数组中只有一个零,而有奇数个负数,则最大乘积为0; 3.数组中只有一个零,而有偶数个负数,则最大乘积为非0的元素的乘积; 4.数组中没有零,而有奇数个负数,则最大乘积为除去绝对值最小的负数的乘积; 5.数组中没有零,而有偶数个负数,则最大乘积为除去最小的正数的乘积。 这样时间复杂原创 2012-08-29 10:25:38 · 499 阅读 · 0 评论 -
编程之美2.14扩展问题1 求子数组和的最大值(首尾可以相连)
转自:http://blog.youkuaiyun.com/zsuguangh/article/details/6338124 整体思路: 问题的解可以分为两种情况: 1)解没有跨过A[n-1]到A[0],即普通的求子数组和的最大值 2)解跨过A[n-1]到A[0] 对第二种情况,只要找到从A[0]开始和最大的一段(A[0],...,A[j])(0 M_2=A[i]+...A[n-1]转载 2012-08-29 13:42:33 · 686 阅读 · 0 评论 -
逆转一个整数的二进制表示问题
转自:http://www.cnblogs.com/iezhyg/archive/2011/09/08/2171328.html 1 //解法一 2 #define UNSIGNED_BITS_COUNT 32 3 unsigned int BitRev3(unsigned int input) 4 { 5 unsigned int ret, i; 6 for(ret =转载 2012-08-29 08:48:59 · 405 阅读 · 0 评论 -
快速寻找满足条件的两个数或三个数
问题: 1. 快速找出一个数组中的两个数,让这两个数之和等于一个给定的值。 2. 快速找出一个数组中的三个数,让这三个数之和等于一个给定的值。 1. 解法:算法复杂度为O(nlogn)。先用快速排序对数组排序,让后用双指针(双索引)法对排序好的数组进行反向遍历,并且遍历的方向不变。(若是计算两个数的和,则初始化为i=0,j=n-1,若是计算两个数的差,则初始化为i=0,j=1) 之转载 2012-08-29 09:39:07 · 654 阅读 · 0 评论