Class AllOne


  • public class AllOne
    extends Object
    432 - All O`one Data Structure.

    Hard

    Design a data structure to store the strings’ count with the ability to return the strings with minimum and maximum counts.

    Implement the AllOne class:

    • AllOne() Initializes the object of the data structure.
    • inc(String key) Increments the count of the string key by 1. If key does not exist in the data structure, insert it with count 1.
    • dec(String key) Decrements the count of the string key by 1. If the count of key is 0 after the decrement, remove it from the data structure. It is guaranteed that key exists in the data structure before the decrement.
    • getMaxKey() Returns one of the keys with the maximal count. If no element exists, return an empty string "".
    • getMinKey() Returns one of the keys with the minimum count. If no element exists, return an empty string "".

    Example 1:

    Input

     ["AllOne", "inc", "inc", "getMaxKey", "getMinKey", "inc", "getMaxKey", "getMinKey"]
     [ [], ["hello"], ["hello"], [], [], ["leet"], [], []]
    

    Output: [null, null, null, “hello”, “hello”, null, “hello”, “leet”]

    Explanation:

     AllOne allOne = new AllOne();
     allOne.inc("hello");
     allOne.inc("hello");
     allOne.getMaxKey(); // return "hello"
     allOne.getMinKey(); // return "hello"
     allOne.inc("leet");
     allOne.getMaxKey(); // return "hello"
     allOne.getMinKey(); // return "leet" 
    

    Constraints:

    • 1 <= key.length <= 10
    • key consists of lowercase English letters.
    • It is guaranteed that for each call to dec, key is existing in the data structure.
    • At most 5 * 104 calls will be made to inc, dec, getMaxKey, and getMinKey.
    • Constructor Detail

      • AllOne

        public AllOne()
    • Method Detail

      • inc

        public void inc​(String key)
      • dec

        public void dec​(String key)
      • getMaxKey

        public String getMaxKey()
      • getMinKey

        public String getMinKey()