Closest Numbers

Sort by

recency

|

630 Discussions

|

  • + 0 comments

    This information is really helpfull for thoese who are interested in custom ecommerce development

  • + 0 comments

    public static List closestNumbers(List arr) { // Write your code here

        // 5,4,3,2
        List<List<Integer>> list = new ArrayList<>(arr.size() - 1);
        for (int i = 0; i < arr.size() - 1; i++) {
            list.add(new ArrayList<>());
        }
        arr = arr.stream().sorted().collect(Collectors.toList());
    
        for (int i = 0; i < arr.size() - 1; i++) {
            list.get(i).add(arr.get(i));
            list.get(i).add(arr.get(i + 1));
        }
    
        List<Integer> ind = new ArrayList<>();
    
        for (int i = 0; i < list.size(); i++) {
            ind.add(list.get(i).get(1) - list.get(i).get(0));
        }
    
        int smaller = ind.stream().min(Comparator.naturalOrder()).orElse(0);
    
        List<Integer> res = new ArrayList<>();
        for (int i = 0; i < ind.size(); i++) {
            if (ind.get(i) == smaller) {
                list.get(i).forEach(f -> res.add(f));
            }
        }
        // System.out.println(res);
        return res;
    }
    
  • + 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

    Here is my Python solution!

    def closestNumbers(arr):
        arr = sorted(arr)
        lowest = float("inf")
        minimum = []
        for i in range(len(arr) - 1):
            if arr[i + 1] - arr[i] < lowest:
                lowest = arr[i + 1] - arr[i]
                minimum = [arr[i], arr[i + 1]]
            elif arr[i + 1] - arr[i] == lowest:
                minimum.append(arr[i])
                minimum.append(arr[i + 1])
        return minimum
    
  • + 0 comments

    vector closestNumbers(vector arr) { int n=arr.size(); vectora; sort(arr.begin(),arr.end()); int k; for(int i=0;id; for(int i=0;i