Sort by

recency

|

2249 Discussions

|

  • + 0 comments
    def breakingRecords(scores):
        # Brute force approach
        min_l=[scores[0]]
        max_l=[scores[0]]
        min_c=0
        max_c=0
        for i in range(1,len(scores)):
            if scores[i] > max_l[-1]:
                max_c+=1
                max_l.append(scores[i])
            if scores[i] < min_l[-1]:
                min_c+=1
                min_l.append(scores[i])
        return max_c,min_c
    
  • + 0 comments

    Here is Breaking the records solution in Python, Java, C++, C and Javascript - https://programmingoneonone.com/hackerrank-breaking-the-records-problem-solution.html

  • + 0 comments

    Golang:

    var most, least int32
    mostRecord := scores[0] 
    leastRecord := scores[0]
    for i:=1;i<len(scores);i++ {
        if scores[i] > mostRecord {
            most ++
            mostRecord = scores[i]
        } else if scores[i] < leastRecord {
            least ++
            leastRecord = scores[i]
        } else {
            continue
        }
    }
    return []int32{most, least}
    
  • + 0 comments

    Clojure solution:

    (defn breakingRecords [scores]
      (let [init (first scores)]
        (->> (rest scores)
             (reduce
              (fn [{:keys [hi lo hi-c lo-c] :as m} s]
                (cond
                  (> s hi) {:hi s, :lo lo, :hi-c (inc hi-c), :lo-c lo-c}
                  (< s lo) {:hi hi, :lo s, :hi-c hi-c, :lo-c (inc lo-c)}
                  :else m))
              {:hi init :lo init :hi-c 0 :lo-c 0})
             ((juxt :hi-c :lo-c)))))
    
  • + 0 comments
    def breakingRecords(scores):
        minScore = maxScore = scores[0]
        minCount = maxCount = 0
        for s in range(1, len(scores)):
            if scores[s] > maxScore:
                maxScore = scores[s]
                maxCount += 1
            elif scores[s] < minScore:
                minScore = scores[s]
                minCount += 1
        return [maxCount, minCount]