Given an integer array of size , return the number with the value closest to in . If there are multiple answers, return the number with the largest value.
Example 1:
Input: nums = [-4,-2,1,4,8]
Output: 1
Explanation:
The distance from -4 to 0 is |-4| = 4.
The distance from -2 to 0 is |-2| = 2.
The distance from 1 to 0 is |1| = 1.
The distance from 4 to 0 is |4| = 4.
The distance from 8 to 0 is |8| = 8.
Thus, the closest number to 0 in the array is 1.
Example 2:
Input: nums = [2,-1,1]
Output: 1
Explanation:
1 and -1 are both the closest numbers to 0, so 1 being larger is returned.
Constraints:
1 <= n <= 1000
-105 <= nums[i] <= 105
我用的二维数组,所以肯定比较慢了,直接附上代码就行了。
public static int findClosestNumber(int[]nums){
int n=nums.length;
int[][]arr =new int[n][2];
for (int i = 0; i &lt; n; i++) {
arr[i][0]=Math.abs(nums[i]);
arr[i][1]=nums[i];
}
Arrays.sort(arr,(a,b)-&gt;a[0]==b[0]?b[1]-a[1]:a[0]-b[0]);
return arr[0][1];
}
Runtime: 23 ms, faster than 5.80% of Java online submissions for Find Closest Number to Zero.
Memory Usage: 42.6 MB, less than 55.89% of Java online submissions for Find Closest Number to Zero.