码迷,mamicode.com
首页 >  
搜索关键字:子数组    ( 1941个结果
基础算法之插入排序
插入排序是一种最基本的排序方法,时间复杂度为O(n2)。其基本思想就是假设A[0, ... j-1]为已经排好序的子数组,通过把A[j]与前面的元素进行比较,将A[j]插入到已经排好顺序的子数组之中。 用C语言简单实现的插入排序如下: 1 /* 插入排序的C语言实现, 时间复杂度为O(n2) */ ...
分类:编程语言   时间:2015-03-05 19:11:59    阅读次数:137
最大子数组问题:股票
题目简述:购买一家股票,给若干股票不同时期预期价位,让你判断何时买何时抛可以获得最大收益。输入:各时期价位总数n以及每个价位。输出:最大收益以及买和投的时间(时期简单记为1-n)。解题思路A:O(n)考虑价位变化。由输入数据可以得到每次价位变化值a2-a1,并依次求和count,根据count是否为...
分类:编程语言   时间:2015-02-26 20:12:42    阅读次数:183
[经典面试题][淘宝]求首尾相连数组的最大子数组和
给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相连的。数组中一个或多个连续元素可以组成一个子数组,其中存在这样的子数组arr[i],…arr[n-1],arr[0],…,arr[j],现在请你这个ACM_Lover用一个最高效的方法帮忙找出所有连续子数组和的最大值(如果数组中的元素全部为负数,则最大和为0,即一个也没有选)。...
分类:编程语言   时间:2015-02-20 22:04:46    阅读次数:218
算法导论-快速排序
一、快速排序的描述快速排序是基于分治策略的。对一个子数组A[p…r]快速排序的分治过程的三个步骤为:1、分解数组A[p…r]被划分成两个(可能空)子数组A[p…q-1]和A[q+1…r],使得A[p…q-1]中的每个元素都小于等于A[q],且小于等于A[q+1…r]中的元素。下标q也在这个划分过程中...
分类:编程语言   时间:2015-02-16 23:21:18    阅读次数:338
[经典面试题]子数组的最大乘积
给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合乘积中的最大的一组,并写出算法的时间复杂度。...
分类:编程语言   时间:2015-02-15 16:38:22    阅读次数:1075
[算法导论]练习4.1-5最大连续子数组问题
题目:在线性时间内非递归的求数组的最大连续子数组(连续和最大的子数组)。思路:设最大子数组的和为max,起点和终点位置为s、e,正在扫描的子数组的和为add,起点和终点位置为i、j。max的初始值为-∞。 1.若数组的值全为负,则返回最大值。 2.逐个扫描数组元素,更新add、i、j的值...
分类:编程语言   时间:2015-02-10 14:52:28    阅读次数:204
求子数组的最大和
题目要求如下: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为 O(n)。 例如输入的数组为 1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为 3, 10, -4, 7, 2, 因此输出为该子数组的和 18。这个问题还是来自July微软面试100题序列,我的解题思路...
分类:编程语言   时间:2015-02-07 15:58:53    阅读次数:227
一个非常好用的PHP数组函数
array_column该函数非常有用,在PHP 5.5中可直接调用。有如下二维数组,如要抽取每个子数组中的特定项。 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'i...
分类:编程语言   时间:2015-02-05 21:53:35    阅读次数:258
数组分割——解题笔记
数组分割——解题笔记          题目:有一个没有排序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为元素个数为n的两个数组,并使两个子数组的和最接近。     分析:这道题目可以用动态规划求解,或者说是一个典型的0,1背包问题,对于第i的数,到底是放进去还是不放,就要看放了对结果有什么影响,不放对结果又有什么影响。而结果是依据题目而言的,这道题目中的结果就是数组之和...
分类:编程语言   时间:2015-02-04 16:41:10    阅读次数:179
面试题:最大连续子数组和
#include using namespace std; int main() { int a[] = {1,-1,3,-7,10,-3,6,-8,1}; int size = sizeof(a)/sizeof(int); int curSum = 0; int maxSum = a[0]; for(int i=0;i<size;i++){ ...
分类:编程语言   时间:2015-02-04 16:36:04    阅读次数:163
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!