题目:
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
思路:使用最基本的方法,递归,但是有空间复杂度
#include
#inc...
分类:
其他好文 时间:
2015-04-07 19:43:35
阅读次数:
102
题目链接:https://leetcode.com/problems/reverse-words-in-a-string/反转字符串的方法有很多种。要求空间复杂度是常数的话,可以先反转所有的单词,然后反转整个字符串。例如"the sky is blue",可以先反转为"eht yks si eulb...
分类:
其他好文 时间:
2015-04-06 21:29:12
阅读次数:
155
题意: 找出一个数组中的主要元素,主要元素为出现次数大于[n/2]的元, 当然最笨的方法就是暴力,没式不知道时间行不行
思路1: 遍历数组,统计每个元素出现的次数,用HashMap统计每个元素出现的次数 时间复杂度O(N),空间复杂度 O(N)
代码1:
public class Solution {
public int majorityElement(int[] num) ...
分类:
其他好文 时间:
2015-04-05 16:05:31
阅读次数:
121
题意;将A,B连个有序数组合并到A中,A空间充足
思路1: 基本思路很简单,开辟一个额外数组,空间复杂度和时间复杂度都为O(N)
代码1:
public class Solution {
public void merge(int A[], int m, int B[], int n) {
if(n == 0)return;
if(m == 0){
...
分类:
其他好文 时间:
2015-04-03 21:04:26
阅读次数:
125
思路:
这道题想了好久,知道用中序遍历来解决,用一个list将遍历的元素存储起来一下就解决了,但是空间复杂度不行。具体怎么解决,如何控制程序的终止困扰了我好久。知道我想起来至多用O(h) memory,我想到了直接把一趟遍历后返回开始之前的所有元素存储起来不就正好符合题目要求了么,bravo!...
分类:
其他好文 时间:
2015-04-03 17:34:15
阅读次数:
189
题目地址:https://leetcode.com/problems/median-of-two-sorted-arrays/
这道题就是求两个有序序列的中位数。这也是2015年4月阿里实习生招人附加题第一题
我用的是归并算法,时间复杂度和空间复杂度都为O(M+N)
class Solution {
public:
double findMedianSortedArrays(int ...
分类:
其他好文 时间:
2015-04-03 11:18:54
阅读次数:
134
这道题比较直接的想法就是用Merge
Sorted Array这个题的方法把两个有序数组合并,当合并到第(m+n)/2个元素的时候返回那个数即可,而且不用把结果数组存起来。算法时间复杂度是O(m+n),空间复杂度是O(1)。因为代码比较简单,就不写出来了,跟Merge
Sorted Array比较类似,大家可以参照这个题目的解法。
接下来我们考虑有没有优化的算法。优化的思想来源于orde...
分类:
其他好文 时间:
2015-04-02 09:08:26
阅读次数:
231
题意:求出某个数组中的两个数值的和等于一个固定的target的该两个数值的下标,按从小到大的顺序.
解题思路:
1: 直接暴力遍历 复杂度O(n*n) 超时
2:先排序,再遍历 增加了空间复杂度,时间复杂度为O(N+N*log(N)+N)
3:有人建议用HashMap但是如果有重复数据就应该是不成立的,思路二的解法如下:
public int[] twoSum(int[] num...
分类:
其他好文 时间:
2015-03-31 22:26:42
阅读次数:
181
3 算法分析“分析”二字的含义很广泛,在算法分析的领域,指的就是算法的效率,包括运行时间效率(时间复杂度)和内存空间使用效率(空间复杂度)两方面。同时,研究表明,通常时间方面比空间能取得更大的进展,因此我们进一步将分析的重点放在时间复杂度上。3.1 算法分析 - 科学实验方法科学家用来理解自然世界的方法对分析程序的运行时间来说同样有效:1) 观察:观察自然世界的一些特性,并用准确的度量表示...
分类:
其他好文 时间:
2015-03-31 22:23:55
阅读次数:
139
//////UserecursivemethodtoimplementFibonacci/////////staticintFn(intn){if(n46memorywilloverflow}递归算法时间复杂度是O(n2), 空间复杂度也很高的。当然不是最优的。自然我们想到了非递归算法了。一般的实现...