給你一個長度為?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;}