Array
文章平均质量分 57
joycetlm
这个作者很懒,什么都没留下…
展开
-
Quick Sort(快速排序)
Quick Sort : 时间复杂度为O(logn)思路:参考https://www.cnblogs.com/luomeng/p/10587492.htmlpublic void quickSort(int[] nums, int low, int high) { if (low >= high) { return; } ...原创 2018-01-19 14:20:43 · 645 阅读 · 0 评论 -
有序数组
(一)merge sorted arrayshttps://leetcode.com/problems/merge-sorted-array/description/题目:将有序数组nums2合并到有序数组nums1中(num1空间足够,m、n分别表示两个数组里初始化的元素个数;解答:从nums1的第m+n-1个位置开始更新(从最大的开始),如果从最小的开始更新需要不断原创 2018-01-17 23:42:05 · 816 阅读 · 0 评论 -
Subarray子数组
该题型多采用prefixSum的方法:(一)Maximum Subarray (Frequent ++)http://www.lintcode.com/en/problem/maximum-subarray/题目:找到数组中总和最大的子集并返回该子集总和;解答:将该数组的prefixSum存储在新数组中(亦可覆盖原数组节省空间),因为sum(i ~ j) = prefixSum原创 2017-08-01 09:26:00 · 966 阅读 · 0 评论 -
Two Sum
(一)Two Sumhttps://leetcode.com/problems/two-sum/description/题目:对一个无重复元素的无序数组,找到满足两个数和为target的组合并返回两数下标(该数组必定且只存在一个满足条件的组合,且一个元素不可使用两次);解答:法一:HashMap:将 nums[index] 和 index 作为key, value值存入hash原创 2018-01-22 07:04:52 · 129 阅读 · 0 评论 -
Partition
(一) Sort Colors题目:一个无序数组仅仅含有0,1,2三种元素,要求按照0,1,2的顺序排列;解答:调用两次快速选择的方法;代码:class Solution { public void sortColors(int[] nums) { quickSelect(nums, 0); quickSelect(nums, 1);原创 2018-01-21 11:28:43 · 199 阅读 · 0 评论 -
棋盘问题/矩阵问题 (Number of Islands)
矩阵是图的特殊情况,常采用BFS。注意点:1、判断边界时,将判断条件封装成函数,增加代码可读性;2、坐标变换数组:int[] deltaX = {1, 0, 0, -1}; int[] deltaY = {0, 1, -1,0}; for ( int i =原创 2017-12-29 07:05:02 · 646 阅读 · 0 评论 -
Intersection of Two Arrays(多种方法)
http://www.lintcode.com/en/problem/intersection-of-two-arrays/题目:求两数组的交集(两数组长度分别为m,n),不包含重复元素方法一:Hash时间复杂度 O(n + m) 空间复杂度 O(min(m, n))解答:将第一个数组的元素存入HashSet, 遍历第二个数组若有元素存在于HashSet中,原创 2017-08-01 15:45:57 · 300 阅读 · 0 评论