![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
IT大学渣
这个作者很懒,什么都没留下…
展开
-
leetcode--remove_cuplicates_rfom_sorted_array
题意: 给定一个排好序的数组,从中删除重复的值,并返回新数组的大小。 条件: 不能额外的申请空间,使用常数空间复杂度。 举例: 给定一个数组A=[1, 1, 2],程序返回结果为2,此时新数组为[1, 2] 分析: 我们额外的添加一个整数count,表示不重复值的个数,初始值为1,因为A[0]肯定不会和前面的重复。当i位置的值和(i - 1)值不同时,则令A[count] = A[i]即可,如原创 2016-12-04 21:53:19 · 241 阅读 · 0 评论 -
leetcode--merge_sorted_array
题意: 给定两个排好序的数组A和B,将B合并到A中作为一个排好序的数组。 注意: 假设A有足够的空间来盛放A和B中合并的结果,初始时A和B中的元素个数分别是m和n。 分析: 因为数组对插入和删除操作非常不友好,因为需要移动后面的元素,相信大家都了解,因此我们在设计算法时都要避免直接对原数组的增删操作。我想到的方法是:因为我们事先已经直到A和B的大小分别是m和n,则合并后一定是m+n个元素,可以从原创 2016-12-04 22:09:36 · 189 阅读 · 0 评论 -
leetcode--remove_element
题意: 给定一个数组和一个值,从数组中删除和该值相同的元素,要求不引入额外的空间,返回新的数组长度,元素的顺序可以调换。 分析: 如果直接删除的话,需要将后面的值往前面移动,这是非常耗费时间的,最坏时间复杂度可以到O(n2)O(n^2) ,我们添加一个int类型的数count,表示总共有多少个重复的数,初始值为0。在找到一个相同的元素时,直接和A.length - count - 1的调换即可。代原创 2016-12-04 22:49:35 · 194 阅读 · 0 评论 -
leetcode--trapping_rain_water
题意: 给定n个由非负整数表示的正视图,每一个块的宽度是1,计算可以放多少水。 举例: 给定一个数组[0, 1, 0, 2, 1, 0 , 1, 3, 2, 1, 2, 1],返回6,图示如下: 分析: 本题的标注是栈,我一开始也是往栈的方向去想,虽然可以实现,但是比较繁琐。做完之后参考其他算法大牛的做法,发现可以使用时间复杂度是O(n),空间复杂度是O(1)的方法,更加高效。算法思想是:先遍历原创 2016-12-05 09:47:26 · 158 阅读 · 0 评论