![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进军硅谷——java
文章平均质量分 67
战争学院
祖国的花朵
展开
-
两数之和二 给定一个整形的数组,找出其中的两个数使其和为某个指定的值,并返回这两个数的下标(数组下标是从0开始)。假设数组元素的值各不相同,则要求时间复杂度O(n),n为数组的长度
package chatpter6; import java.util.Arrays; public class num1 { boolean hasSum(int[] A,int target){ boolean res = false; Arrays.sort(A); int i = 0,j = A.length-1; while(i if(A[i] + A原创 2015-09-22 10:13:48 · 1025 阅读 · 0 评论 -
首个正数,给定一个无序整形数组,找出第一个不在数组里的正整数。要求时间复杂度0(n),空间复杂度o(1)
Given an unsorted integer array, find the first missing positive integer. For example, Given [1,2,0] return 3, and [3,4,-1,1] return 2. Your algorithm should run in O(n) time and uses constant转载 2015-10-09 11:46:06 · 1698 阅读 · 0 评论 -
快速排序
快速排序算法里的partition函数用来解决这样一个问题:给定一个数组arr[]和数组中任意一个元素a,重排数组使得a左边都小于它,右// arr[]为数组,start、end分别为数组第一个元素和最后一个元素的索引 // povitIndex为数组中任意选中的数的索引 int partition(int arr[], int start, int end, int pivotIndex)原创 2015-09-30 16:56:13 · 255 阅读 · 0 评论 -
合并区间 给定一个区间集合,合并里面重叠的区间,并返回新的不含重叠区间的集合。public class num8 { public ArrayList<Interval> merge(ArrayLi
public class num8 { public ArrayList merge(ArrayList intervals){ ArrayList res = new ArrayList(); if(intervals == null || intervals.isEmpty()) return res; Comparator comparator = new Comparator()原创 2015-09-29 19:25:12 · 1285 阅读 · 0 评论 -
给定一个整形数组,是否能找出其中的两个数使其和为某个指定的值?
输入数组为{1,5,7,3}以及指定的目标值为10,我们可以从中找出两个数3和7,和为10. package chatpter6; import java.util.Arrays; public class num1 { boolean hasSum(int[] A,int target){ boolean res = false; Arrays.sort(A);原创 2015-09-22 10:00:58 · 803 阅读 · 0 评论 -
给出多个可能重叠的区间,找出重叠区间的个数。
import java.util.Arrays; class Interval{ int start; int end; Interval(int a,int b){ start = a; end = b; } } class Point implements Comparable{ int value; int type; Point(int v,in原创 2015-09-29 19:22:16 · 1384 阅读 · 0 评论 -
数组旋转 返回将一维数组向右旋转k个位置的结果。比如,一维数组{1,2,3,4,5},k=2时,返回结果{4,5,1,2,3}。要求常数级空间复杂度,允许修改原有数组
public class num4 { int[] rotateK(int[] A,int k){ if(A==null || k>=A.length) return A; reverse(A,0,A.length-1); reverse(A, 0, k-1); reverse(A, k, A.length-1); return A; } void reverse(in原创 2015-09-29 18:44:23 · 582 阅读 · 0 评论 -
两数之和三 设计一个类,包含如下两个成员函数:Save(int input)插入一个整数到一个整数集合里。Test(int target)检验是否存在两个数和为输入值。如果存在着两个数,则返回true
package chatpter6; import java.util.HashMap; import java.util.Iterator; public class num3 { HashMap hm = new HashMap(); public void save(int input){ int originalCount = 0; if(hm.con原创 2015-09-22 11:25:32 · 384 阅读 · 0 评论 -
数组配对 给定N个整数,N为偶数,是否能找到N/2对,使得每对和能被K整除。注意:每个元素只能出现在一个配对中。public class num9 { public boolean checkP
public class num9 { public boolean checkPairable(int[] nums,int k){ if(k int[] counts = new int[k]; for (int num : nums) { counts[num % k]++; } if(counts[0] % 2 != 0) return false; if(k % 2原创 2015-09-29 19:25:50 · 476 阅读 · 0 评论 -
插入区间 给定一个没有重叠的区间序列,先插入一个新的区间到该序列中,要求维持没有重叠的情况。假设该序列存放的区间是有序的。
public class num7 { public ArrayList insert(Interval[] intervals,Interval newInt){ ArrayList res = new ArrayList(); if(intervals == null){ res.add(newInt); } int i = 0, n = intervals.length; wh原创 2015-09-29 19:24:39 · 491 阅读 · 0 评论 -
合并区间
合并区间 给定一个区间集合,合并里面重叠的区间,并返回新的不含重叠区间的集合。 例如,输入:[1,5],[6,10],[4,6],[15,20]。输出:[1,10],[15,20]public ArrayList<Interval> merge(ArrayList<Interval> intervals){ ArrayList<Interval> res = new ArrayList<In原创 2015-12-01 09:15:07 · 420 阅读 · 0 评论