Sort by

recency

|

3623 Discussions

|

  • + 0 comments

    def migratoryBirds(arr) freq = {}

    # Step 1: Build frequency hash manually
    for i in arr
      if freq.has_key?(i)
        freq[i] += 1
      else
        freq[i] = 1
      end
    end
    
    # Step 2: Find the highest frequency
    max_freq = 0
    for key in freq.keys
      if freq[key] > max_freq
        max_freq = freq[key]
      end
    end
    
    # Step 3: Among all bird types with max frequency, find the smallest ID
    min_id = nil
    for key in freq.keys
      if freq[key] == max_freq
        if min_id.nil? || key < min_id
          min_id = key
        end
      end
    end
    
    return min_id
    

    end

  • + 0 comments

    Python

    def migratoryBirds(arr): # Write your code here res = [] for i in range(5): res.append(arr.count(i+1)) return res.index(max(res))+1

  • + 0 comments

    Why can't I use statistics.mode(arr) to solve it.

  • + 0 comments
    public static int migratoryBirds(List<Integer> arr) {
        Comparator<Long> longComp = Long::compare;
        Map<Integer, Long> countMap = arr.stream().collect(Collectors.groupingBy((Integer i)->i, Collectors.counting()));
        long maxFrequency = countMap.entrySet().stream().sorted(Map.Entry.comparingByValue(longComp.reversed())).
        findFirst().get().getValue();
        Integer key = countMap.entrySet().stream().filter(en -> en.getValue() == maxFrequency).sorted(Map.Entry.comparingByKey()).findFirst().get().getKey();
        return key;
    }   
    
  • + 0 comments

    Here is a python solution with O(n + k) time and O(k) space:

    def migratoryBirds(arr):
        count = {}
        for n in arr:
            if n not in count:
                count[n] = 0
            count[n] += 1
            
        maxval = max(count.values())
        
        best = []
        for key, val in count.items():
            if val == maxval:
                best.append(key)             
    
        return min(best)