Class Solution
java.lang.Object
g1601_1700.s1649_create_sorted_array_through_instructions.Solution
1649 - Create Sorted Array through Instructions.<p>Hard</p>
<p>Given an integer array <code>instructions</code>, you are asked to create a sorted array from the elements in <code>instructions</code>. You start with an empty container <code>nums</code>. For each element from <strong>left to right</strong> in <code>instructions</code>, insert it into <code>nums</code>. The <strong>cost</strong> of each insertion is the <strong>minimum</strong> of the following:</p>
<ul>
<li>The number of elements currently in <code>nums</code> that are <strong>strictly less than</strong> <code>instructions[i]</code>.</li>
<li>The number of elements currently in <code>nums</code> that are <strong>strictly greater than</strong> <code>instructions[i]</code>.</li>
</ul>
<p>For example, if inserting element <code>3</code> into <code>nums = [1,2,3,5]</code>, the <strong>cost</strong> of insertion is <code>min(2, 1)</code> (elements <code>1</code> and <code>2</code> are less than <code>3</code>, element <code>5</code> is greater than <code>3</code>) and <code>nums</code> will become <code>[1,2,3,3,5]</code>.</p>
<p>Return <em>the <strong>total cost</strong> to insert all elements from</em> <code>instructions</code> <em>into</em> <code>nums</code>. Since the answer may be large, return it <strong>modulo</strong> <code>10<sup>9</sup> + 7</code></p>
<p><strong>Example 1:</strong></p>
<p><strong>Input:</strong> instructions = [1,5,6,2]</p>
<p><strong>Output:</strong> 1</p>
<p><strong>Explanation:</strong> Begin with nums = [].</p>
<p>Insert 1 with cost min(0, 0) = 0, now nums = [1].</p>
<p>Insert 5 with cost min(1, 0) = 0, now nums = [1,5].</p>
<p>Insert 6 with cost min(2, 0) = 0, now nums = [1,5,6].</p>
<p>Insert 2 with cost min(1, 2) = 1, now nums = [1,2,5,6].</p>
<p>The total cost is 0 + 0 + 0 + 1 = 1.</p>
<p><strong>Example 2:</strong></p>
<p><strong>Input:</strong> instructions = [1,2,3,6,5,4]</p>
<p><strong>Output:</strong> 3</p>
<p><strong>Explanation:</strong> Begin with nums = [].</p>
<p>Insert 1 with cost min(0, 0) = 0, now nums = [1].</p>
<p>Insert 2 with cost min(1, 0) = 0, now nums = [1,2].</p>
<p>Insert 3 with cost min(2, 0) = 0, now nums = [1,2,3].</p>
<p>Insert 6 with cost min(3, 0) = 0, now nums = [1,2,3,6].</p>
<p>Insert 5 with cost min(3, 1) = 1, now nums = [1,2,3,5,6].</p>
<p>Insert 4 with cost min(3, 2) = 2, now nums = [1,2,3,4,5,6].</p>
<p>The total cost is 0 + 0 + 0 + 0 + 1 + 2 = 3.</p>
<p><strong>Example 3:</strong></p>
<p><strong>Input:</strong> instructions = [1,3,3,3,2,4,2,1,2]</p>
<p><strong>Output:</strong> 4</p>
<p><strong>Explanation:</strong> Begin with nums = [].</p>
<p>Insert 1 with cost min(0, 0) = 0, now nums = [1].</p>
<p>Insert 3 with cost min(1, 0) = 0, now nums = [1,3].</p>
<p>Insert 3 with cost min(1, 0) = 0, now nums = [1,3,3].</p>
<p>Insert 3 with cost min(1, 0) = 0, now nums = [1,3,3,3].</p>
<p>Insert 2 with cost min(1, 3) = 1, now nums = [1,2,3,3,3].</p>
<p>Insert 4 with cost min(5, 0) = 0, now nums = [1,2,3,3,3,4].</p>
<p>Insert 2 with cost min(1, 4) = 1, now nums = [1,2,2,3,3,3,4].</p>
<p>Insert 1 with cost min(0, 6) = 0, now nums = [1,1,2,2,3,3,3,4].</p>
<p>Insert 2 with cost min(2, 4) = 2, now nums = [1,1,2,2,2,3,3,3,4].</p>
<p>The total cost is 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 2 = 4.</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>1 <= instructions.length <= 10<sup>5</sup></code></li>
<li><code>1 <= instructions[i] <= 10<sup>5</sup></code></li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
createSortedArray
public int createSortedArray(int[] instructions)
-