Closest Numbers

Sort by

recency

|

634 Discussions

|

  • + 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
    
  • + 0 comments

    If you're into playing Closest Numbers, you know how fun and addictive it can get. Whether you're trying to beat your own high score or just having a chill session with friends, it’s always exciting to guess right. And hey, if you’re planning your next round, don’t forget to fab atm balance check before jumping in — it's always smart to know where you stand. Closest Numbers keeps the brain ticking, and a quick fab atm balance check gives that extra peace of mind. There’s something really satisfying about getting close to the right number and seeing your guess hit just right. Keep it casual, keep it sharp, and let the fun roll with Closest Numbers!

  • + 0 comments

    python 3

    def closestNumbers(arr):
        arr.sort()
        mindif = arr[-1] - arr[0]
        results = []
        
        for i in range(len(arr) - 1):
            diff = arr[i + 1] - arr[i]
            if diff < mindif:
                mindif = diff + 0
                results = [arr[i], arr[i + 1]]
            elif diff == mindif:
                results.append(arr[i])
                results.append(arr[i + 1])
        
        return results
    
  • + 0 comments

    Here is my c++ solution, you can watch the explanation here: https://youtu.be/-sX3IgdQ6Wg

    vector<int> closestNumbers(vector<int> arr) {
        sort(arr.begin(), arr.end());
        int diff = INT_MAX;
        vector<int> result;
        for(int i = 1; i < arr.size(); i++){
            if(arr[i] - arr[i-1] < diff){
                diff = arr[i] - arr[i-1];
                result = {arr[i-1], arr[i]};
            }
            else if(arr[i] - arr[i-1] == diff){
                result.insert(result.end(), {arr[i-1], arr[i]});
            }
        }
        return result;
    }
    
  • + 0 comments

    My Java solution:

    public static List<Integer> closestNumbers(List<Integer> arr) {
            if(arr.size() == 2) return Arrays.asList(arr.get(0), arr.get(1));
            //goal: find pair with smallest abs diff
            //sort arr
            Collections.sort(arr);
            //init new min
            int min = arr.get(1) - arr.get(0);
            List<Integer> minIdices = new ArrayList<>();
            minIdices.add(arr.get(0));
            minIdices.add(arr.get(1));
            //compare adj elements
            for(int i = 2; i < arr.size(); i++){
                int diff = arr.get(i) - arr.get(i - 1);
                //if new min is found clear ans list
                if(diff < min){
                    min = diff;
                    minIdices.clear();
                    minIdices.add(arr.get(i - 1));
                    minIdices.add(arr.get(i));
                }
                else if(diff == min){
                    minIdices.add(arr.get(i - 1));
                    minIdices.add(arr.get(i));
                }
            }
            return minIdices;
        }