给你一个长度为 n
的整数数组 nums
,请你返回 nums
中最 接近 0
的数字。如果有多个答案,请你返回它们中的 最大值 。
示例 1:
输入:nums = [-4,-2,1,4,8] 输出:1 解释: -4 到 0 的距离为 |-4| = 4 。 -2 到 0 的距离为 |-2| = 2 。 1 到 0 的距离为 |1| = 1 。 4 到 0 的距离为 |4| = 4 。 8 到 0 的距离为 |8| = 8 。 所以,数组中距离 0 最近的数字为 1 。
示例 2:
输入:nums = [2,-1,1] 输出:1 解释:1 和 -1 都是距离 0 最近的数字,所以返回较大值 1 。
提示:
1 <= n <= 1000
-105 <= nums[i] <= 105
/*** 2239. 找到最接近 0 的数字* @param nums* @return*/public static int findClosestNumber(int[] nums) {int ans = Integer.MAX_VALUE;for (int num : nums) {int absNum = Math.abs(num);// 两种情况判断都采用绝对值的形式,当num的绝对值小于ans的绝对值时,则直接赋值// 如果absNum的绝对值等于ans的绝对值,则表示他们的距离相同,此时比较两个数的大小。if (absNum < Math.abs(ans) || (absNum == Math.abs(ans) && num > ans)) {ans = num;}}return ans;}