Subset with Minimal Difference of Max and Min
题目:
给一个integer的array和size,然后要返回一个subset是的该subset里面的(max - min)是最小的。
解题思路:
这道题首先要对input的array进行排序,然后用size为给定size的window来扫一遍同时更新结果。
代码:
给一个integer的array和size,然后要返回一个subset是的该subset里面的(max - min)是最小的。
解题思路:
这道题首先要对input的array进行排序,然后用size为给定size的window来扫一遍同时更新结果。
代码:
public class SubsetwithMinimalDifferenceofMaxandMin { public int[] findSubset(int[] nums, int size){ if(nums == null || nums.length < size){ return new int[0]; } Arrays.sort(nums); int[] rst = new int[size]; int index = 0; int min = Integer.MAX_VALUE; for(int i = 0; i <= nums.length - size; i++){ if(nums[i + size - 1] - nums[i] < min){ index = i; } } int i = 0; while(i <= size - 1){ rst[i++] = nums[index++]; } return rst; } public static void main(String[] args){ int[] nums = {9, 15, 14, 3}; SubsetwithMinimalDifferenceofMaxandMin subsetwithMinimalDifferenceofMaxandMin = new SubsetwithMinimalDifferenceofMaxandMin(); int[] rst = subsetwithMinimalDifferenceofMaxandMin.findSubset(nums, 3); System.out.println(Arrays.toString(rst)); } }

Comments
Post a Comment