当前位置: 代码迷 >> J2SE >> 请问一个方法
  详细解决方案

请问一个方法

热度:145   发布时间:2016-04-24 13:16:23.0
请教一个方法
一个List存数字
先对List中的先字排序
如果list内存的数字是连续的如{1,2,3,4,5,6,7,8,9}刚返回数字为list里的最大数字加1返回数字就为10
如果list内存的数字不是连续的如{1,2,4,7,8,9}则返回数字应该为5
请高新指点,谢谢!

------解决方案--------------------
Java code
import java.util.Arrays;public class Test {    public static void main(String[] args) {        int[] a = {1,2,3,4,5,6,7,8,9};        int next1 = nextContinuous(a);        System.out.println(next1);        int[] b = {1,2,3,5,6,7,8,9};        int next2 = nextContinuous(b);        System.out.println(next2);            }        private static int nextContinuous(int[] nums) {        Arrays.sort(nums);        int k = nums[0];        for(int i = 0; i < nums.length; i++, k++) {            if(nums[i] != k) {                return k;            }        }        return k;    }}
------解决方案--------------------
HTML code
import java.util.Arrays;class Discontinuity {    public static void getDiscontinuity(int[] array) {        Arrays.sort(array);        int i = 0, temp = array[0];        for (; i < array.length; i++, temp++) {            if (array[i] != temp) {                break;            }        }        System.out.println(temp);    }    public static void main(String[] args) {        int[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };        int[] array2 = { 1, 2, 3, 5, 6, 7, 8, 9 };        getDiscontinuity(array1);        getDiscontinuity(array2);    }}
  相关解决方案