给定一个字符串str, 返回str的最长无重复字符子串长度 例如 str="abcd' 返回4 str=“aabcb” 最长“abc” 返回3 解决本题的思路非常非常有趣,这种思路必须要学会: 本题目可以做到 时间复杂度O(N) str长度N 空间复杂度O(M) M是字符编码 根据字符编码 大小 申 ...
分类:
其他好文 时间:
2017-08-22 11:40:25
阅读次数:
147
1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难; 链表 链表存储区间离散,占用内存比较宽松,故空间复杂度 ...
分类:
其他好文 时间:
2017-08-21 22:57:29
阅读次数:
187
floyd-warshall算法用来求最短路径(即动态规划) 时间复杂度为O(N3),空间复杂度为O(N2)。 到达目的地有两种方法,一:直接点对点,没有中转站。二:经过中转站直接到达。 在求最短路径前,先谈谈地图的存储 如图,使用二元数组存储。图中无穷大代表没有道路,e[1][2]=2代表1城市到 ...
分类:
编程语言 时间:
2017-08-19 21:13:47
阅读次数:
150
第一题: 给定一个长度不小于2的数组arr。 写一个函数调整arr,使arr中要么全部的偶数位上都是偶数,要么全部的奇数位上都是奇数上。 要求:假设数组长度为N。时间复杂度请达到O(N),额外空间复杂度请达到O(1),下标0,2,4,6...算作偶数位,下标1,3,5,7...算作奇数位,比如[1, ...
分类:
其他好文 时间:
2017-08-19 20:17:36
阅读次数:
165
传送门 Description Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find t ...
分类:
其他好文 时间:
2017-08-19 20:10:52
阅读次数:
143
合唱队形题 题目分析 :分别求最长上升和下降子序列。 题目分析 :这道题差不多是个水题了,不过我在做题的被误导了,虽然结果正确却超时了。我们用上升子序列的时间复杂度是:O(n*n); 题目收获 :需要对时间复杂和空间复杂度进行深刻的重新理解。 AC代码 : ...
分类:
其他好文 时间:
2017-08-19 12:46:19
阅读次数:
144
题目要求: 思路一:借助队列,先顺序读入input矩阵,然后按照output要求向output矩阵输入 【正确代码】 时间复杂度:O(m*n) 空间复杂度:O(m*n) 思路二:不借助辅助空间,直接根据output的要求向output矩阵输入 正常向output矩阵中读入数据,如果 cols > c ...
分类:
编程语言 时间:
2017-08-18 22:24:57
阅读次数:
191
概念(copy度娘): 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,因此有时需要离散化让空间压缩。 通俗地讲: 线段树 ...
分类:
其他好文 时间:
2017-08-18 22:21:36
阅读次数:
163
哈希表由数组+链表组成,一个长度为16的数组中,每个元素存储的是一个链表的头结点。而HashMap和Hashtable就是哈希表结构。 HashMap和HashTable数组的存储空间是连续的,占用内存严重,故空间复杂度很大,但是查找时间复杂度较小。数组的特点:寻址容易,插入和删除困难。链表的存储空 ...
分类:
其他好文 时间:
2017-08-14 14:19:41
阅读次数:
111
归并排序 MERGE-SORT 时间复杂度: 空间复杂度: 一、原地归并排序 步骤:将两个已有序数组组合到一个数组中并排好序。 二、自顶向下归并排序 步骤:运用递归的方法,将数组平均分为两部分,进行排序,再将前部分再分为两部分,进行排序....直到数组被分为n组两个元素比较排序 改进后的自顶向上归并 ...
分类:
编程语言 时间:
2017-08-12 21:24:21
阅读次数:
208