Closest Numbers

Sort by

recency

|

638 Discussions

|

  • + 0 comments

    Here is problem solution in python, java, c++, c and javascript - https://programmingoneonone.com/hackerrank-closest-numbers-problem-solution.html

  • + 0 comments
    vector<int> closestNumbers(vector<int> arr) {
        sort(arr.begin(), arr.end());
        vector<int> pairs;
        int lowest = INT16_MAX;
        
        for(int i=0; i<arr.size(); i++){
            
            if((i+1)<arr.size()){
                int diff = arr[i+1]-arr[i];
                
                if(diff==lowest){
                    pairs.push_back(arr[i]);
                    pairs.push_back(arr[i+1]);
                }
                
                if (diff<lowest) {
                    lowest = diff;
                    pairs.clear();
                    pairs.push_back(arr[i]);
                    pairs.push_back(arr[i+1]);
                }
            }
        }
        
        return pairs;
    }
    
  • + 0 comments

    class Result {

    /*
     * Complete the 'closestNumbers' function below.
     *
     * The function is expected to return an INTEGER_ARRAY.
     * The function accepts INTEGER_ARRAY arr as parameter.
     */
    public static List<Integer> closestNumbers(List<Integer> arr) {
        Collections.sort(arr);
        int mini = Integer.MAX_VALUE;
        for(int i=1;i<arr.size();i++){
            if(Math.abs(arr.get(i)-arr.get(i-1))<mini){
                mini = Math.abs(arr.get(i)-arr.get(i-1));
            }
        }
        List<Integer> result = new LinkedList<>();
        for(int i=1; i<arr.size(); i++){
            if(Math.abs(arr.get(i)-arr.get(i-1))==mini){
                result.add(arr.get(i-1));
                result.add(arr.get(i));
            }
        }
    
    return result;
    }
    

    }

  • + 0 comments

    vector closestNumbers(vector arr) { sort(arr.begin(), arr.end()); int mindif = INT_MAX; vector results; for (size_t i = 0; i < arr.size() - 1; ++i) { int diff = arr[i + 1] - arr[i]; if (diff < mindif) { mindif = diff; results.clear(); results.push_back(arr[i]); results.push_back(arr[i + 1]); } else if (diff == mindif) { results.push_back(arr[i]); results.push_back(arr[i + 1]); } } return results;

  • + 0 comments
    def closestNumbers(arr, n):
        # Write your code here
        sorted_arr = sorted(arr)
        smallest_diff = float('inf')
        diff_arr = []
        for i in range(n - 1):
            first = sorted_arr[i]
            second = sorted_arr[i+1]
            diff = second - first
            if diff < smallest_diff:
                smallest_diff = diff
                diff_arr = [first, second]
            elif diff == smallest_diff:
                diff_arr.append(first)
                diff_arr.append(second)
                
        return diff_arr