Skip to content

Latest commit

 

History

History

2239

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Given an integer array nums of size n, return the number with the value closest to 0 in nums. 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

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/find-closest-number-to-zero/
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(1)
class Solution {
public:
    int findClosestNumber(vector<int>& A) {
        int diff = INT_MAX, ans = INT_MAX;
        for (int n : A) {
            if (abs(n) < diff || (abs(n) == diff && n > ans)) {
                diff = abs(n);
                ans = n;
            } 
        }
        return ans;
    }
};

Discuss

https://leetcode.com/problems/find-closest-number-to-zero/discuss/1953786