码迷,mamicode.com
首页 >  
搜索关键字:空间复杂度    ( 2067个结果
数据结构与算法之线性表
前言 上一篇《数据结构和算法之时间复杂度和空间复杂度》中介绍了时间复杂度的概念和常见的时间复杂度,并分别举例子进行了一一说明。这一篇主要介绍线性表。 线性表属于数据结构中逻辑结构中的线性结构。回忆一下,数据结构分为物理结构和逻辑结构,逻辑结构分为线性结构、几何结构、树形结构和图形结构四大结构。其中,
分类:编程语言   时间:2016-02-15 23:59:50    阅读次数:484
[算法]数组中未出现的最小正整数
题目: 给定一个无序整型数组arr,找到数组中未出现的最小正整数。 例如: arr=[-1,2,3,4]。返回1。 arr=[1,2,3,4]。返回5。 要求时间复杂度为O(N),空间复杂度为O(1)。 解答: 在遍历arr之前先生成两个变量。变量l表示遍历到目前为止,数组arr已经包含的正整数范围...
分类:编程语言   时间:2016-02-15 01:58:08    阅读次数:300
[算法]数组排序之后相邻数的最大差值
题目: 给定一个整形数组arr,返回排序后的相邻两数的最大差值。 时间复杂度为O(N)。 解答: 如果用排序法实现,其时间复杂度为O(NlogN),而如果利用桶排序的思想(不是桶排序),可以做到O(N),额外空间复杂度为O(N)。遍历arr找到最大值max和最小值min。如果arr的长度为N,准备N...
分类:编程语言   时间:2016-02-15 00:52:24    阅读次数:410
[算法]数组的partition调整
题目一: 给定一个有序数组arr,调整arr使得这个数组的左半部分没有重复部分且升序,而不用保证右部分是否有序。 例如:arr=[1,2,2,2,3,3,4,5,6,6,7,7,8,8,9,9],调整之后arr=[1,2,3,4,5,6,7,8,9…]。 要求: 时间复杂度O(N),额外空间复杂度O...
分类:编程语言   时间:2016-02-14 23:41:18    阅读次数:372
[算法]不包含本位置值的累乘数组
题目: 给定一个整型数组,返回不包含本位置的累乘数组。 例如:arr=[2,3,1,4],返回[12,8,24,6],即除自己外,其他位置的类乘。 要求: 1.时间复杂度为O(N). 2.除需要返回的结果数组之外,额外空间复杂度为O(1). 使用除法: 结果数组记为res,所有数的乘积记为all。如...
分类:编程语言   时间:2016-02-14 20:56:41    阅读次数:239
[算法]自然数数组的排序
题目: 给定一个长度为N的整型数组arr,其中有N个互不相等的自然数1~N,请实现arr的排序,但是不要把下标0~N-1位置上的数值通过直接赋值的方式替换成1~N。 要求:时间复杂度为O(N),额外空间复杂度为O(1)。 思路: 1.从左向右遍历arr,假设当前遍历到i位置。 2.if arr[i]...
分类:编程语言   时间:2016-02-13 18:22:55    阅读次数:280
[算法]奇数下标都是奇数或偶数下标都是偶数
题目: 给定一个长度不小于2的数组arr,实现一个函数调整arr,要么使所有的偶数下标都是偶数,要么使所有的奇数下标都是奇数。 要求:时间复杂度为O(N),额外空间复杂度为O(1)。 程序: public static void modify(int[] arr) { if (arr == null...
分类:编程语言   时间:2016-02-13 18:15:20    阅读次数:214
[算法]需要排序的最短子数组长度
题目: 给定一个无序数组,求出需要排序的最短子数组的长度。 例如:arr={1,5,3,4,2,6,7}返回4,因为只有[5,3,4,2]需要排序。 思路: 解决这个问题可以在时间复杂度为O(N)、额外空间复杂度为O(1)完成。 初始化变量noMinIndex=-1,从右向左遍历,便利的过程记录右侧...
分类:编程语言   时间:2016-02-12 01:00:37    阅读次数:286
[算法]“之”字形打印矩阵
题目: 给定一个矩阵matrix,按照“之”字形的方式打印这个矩阵。例如: 1 2 3 4 5 6 7 8 9 10 11 12 “之”字形打印的结果为:1,2,5,9,6,3,4,7,10,11,8,12 要求额外的空间复杂度为O(1)。 思路: 1.上坐标(tR,tC)的初始为(0,0),先沿着
分类:编程语言   时间:2016-02-11 19:16:32    阅读次数:221
UVALive 5741 Wealthy Family
树形背包。DP递推的思路很简单.... 但是由于节点有15万个,先不论空间复杂度,这样开dp数组 dp[150000+10][300+10],如果初始化是memset(dp,-1,sizeof dp),则必然超时。 所以需要一个状态数剪枝。。。即记录这个节点最多组合的数量。 UVALive是不限制内
分类:其他好文   时间:2016-02-10 10:58:55    阅读次数:237
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!