mirror of
				https://gitee.com/coder-xiaomo/leetcode-problemset
				synced 2025-11-04 11:43:12 +08:00 
			
		
		
		
	国外版
This commit is contained in:
		
							
								
								
									
										42
									
								
								算法题(国外版)/all-oone-data-structure.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								算法题(国外版)/all-oone-data-structure.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
<p>Design a data structure to store the strings' count with the ability to return the strings with minimum and maximum counts.</p>
 | 
			
		||||
 | 
			
		||||
<p>Implement the <code>AllOne</code> class:</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
	<li><code>AllOne()</code> Initializes the object of the data structure.</li>
 | 
			
		||||
	<li><code>inc(String key)</code> Increments the count of the string <code>key</code> by <code>1</code>. If <code>key</code> does not exist in the data structure, insert it with count <code>1</code>.</li>
 | 
			
		||||
	<li><code>dec(String key)</code> Decrements the count of the string <code>key</code> by <code>1</code>. If the count of <code>key</code> is <code>0</code> after the decrement, remove it from the data structure. It is guaranteed that <code>key</code> exists in the data structure before the decrement.</li>
 | 
			
		||||
	<li><code>getMaxKey()</code> Returns one of the keys with the maximal count. If no element exists, return an empty string <code>""</code>.</li>
 | 
			
		||||
	<li><code>getMinKey()</code> Returns one of the keys with the minimum count. If no element exists, return an empty string <code>""</code>.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p> </p>
 | 
			
		||||
<p><strong>Example 1:</strong></p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
<strong>Input</strong>
 | 
			
		||||
["AllOne", "inc", "inc", "getMaxKey", "getMinKey", "inc", "getMaxKey", "getMinKey"]
 | 
			
		||||
[[], ["hello"], ["hello"], [], [], ["leet"], [], []]
 | 
			
		||||
<strong>Output</strong>
 | 
			
		||||
[null, null, null, "hello", "hello", null, "hello", "leet"]
 | 
			
		||||
 | 
			
		||||
<strong>Explanation</strong>
 | 
			
		||||
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"
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p> </p>
 | 
			
		||||
<p><strong>Constraints:</strong></p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
	<li><code>1 <= key.length <= 10</code></li>
 | 
			
		||||
	<li><code>key</code> consists of lowercase English letters.</li>
 | 
			
		||||
	<li>It is guaranteed that for each call to <code>dec</code>, <code>key</code> is existing in the data structure.</li>
 | 
			
		||||
	<li>At most <code>5 * 10<sup>4</sup></code> calls will be made to <code>inc</code>, <code>dec</code>, <code>getMaxKey</code>, and <code>getMinKey</code>.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
		Reference in New Issue
	
	Block a user