maximum gap java_maximum-gap(经过了提示)

packagecom.company;import java.util.*;classSolution {public int maximumGap(int[] nums) {if (nums.length < 2) {return 0;

}//用 Radix 排序

int small =Integer.MAX_VALUE;int big = 0;for (intnum : nums) {if (num

small=num;

}if (num >big) {

big=num;

}

}

System.out.println("big is " + big + " small " +small);int gap = (big - small - 1) / (nums.length - 1) + 1;if (gap == 0) {return 0;

}int gap_num = (big - small) / gap + 1;int[] first = new int[gap_num];int[] second = new int[gap_num];//[ )

System.out.println("gap is " + gap + " len is " + nums.length + "big is " + big + " small " +small);for (intnum : nums) {int index = (num - small) /gap;if (first[index] == 0 || num

first[index]=num;

}if (second[index] == 0 || num >second[index]) {

second[index]=num;

}

}int ret = -1;int last = -1;for (int i=0; i

}if (last == -1) {

last=second[i];

ret= last -first[i];

}else{if (first[i] - last >ret) {

ret= first[i] -last;

}if (second[i] - first[i] >ret) {

ret= second[i] -first[i];

}

last=second[i];

}

}returnret;

}

}public classMain {public static voidmain(String[] args) {

System.out.println("Hello!");

Solution solution= newSolution();int[] nums = {1,1,1,1,1,5,5,5,5,5};int ret =solution.maximumGap(nums);

System.out.printf("Get ret: %s\n", ret);/*Iterator> iterator = ret.iterator();

while (iterator.hasNext()) {

Iterator iter = iterator.next().iterator();

while (iter.hasNext()) {

System.out.printf("%d,", iter.next());

}

System.out.println();

}*/System.out.println();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值