进军硅谷——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(iif(A[i] + A原创 2015-09-22 10:13:48 · 1016 阅读 · 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 · 1692 阅读 · 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 · 252 阅读 · 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 · 1278 阅读 · 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 · 799 阅读 · 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 · 1376 阅读 · 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 · 579 阅读 · 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 · 378 阅读 · 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 · 468 阅读 · 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 · 486 阅读 · 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 · 414 阅读 · 0 评论