java.lang.Object
g1801_1900.s1860_incremental_memory_leak.Solution

public class Solution extends Object
1860 - Incremental Memory Leak.<p>Medium</p> <p>You are given two integers <code>memory1</code> and <code>memory2</code> representing the available memory in bits on two memory sticks. There is currently a faulty program running that consumes an increasing amount of memory every second.</p> <p>At the <code>i<sup>th</sup></code> second (starting from 1), <code>i</code> bits of memory are allocated to the stick with <strong>more available memory</strong> (or from the first memory stick if both have the same available memory). If neither stick has at least <code>i</code> bits of available memory, the program <strong>crashes</strong>.</p> <p>Return <em>an array containing</em> <code>[crashTime, memory1<sub>crash</sub>, memory2<sub>crash</sub>]</code><em>, where</em> <code>crashTime</code> <em>is the time (in seconds) when the program crashed and</em> <code>memory1<sub>crash</sub></code> <em>and</em> <code>memory2<sub>crash</sub></code> <em>are the available bits of memory in the first and second sticks respectively</em>.</p> <p><strong>Example 1:</strong></p> <p><strong>Input:</strong> memory1 = 2, memory2 = 2</p> <p><strong>Output:</strong> [3,1,0]</p> <p><strong>Explanation:</strong> The memory is allocated as follows:</p> <ul> <li> <p>At the 1<sup>st</sup> second, 1 bit of memory is allocated to stick 1. The first stick now has 1 bit of available memory.</p> </li> <li> <p>At the 2<sup>nd</sup> second, 2 bits of memory are allocated to stick 2. The second stick now has 0 bits of available memory.</p> </li> <li> <p>At the 3<sup>rd</sup> second, the program crashes. The sticks have 1 and 0 bits available respectively.</p> </li> </ul> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> memory1 = 8, memory2 = 11</p> <p><strong>Output:</strong> [6,0,4]</p> <p><strong>Explanation:</strong> The memory is allocated as follows:</p> <ul> <li> <p>At the 1<sup>st</sup> second, 1 bit of memory is allocated to stick 2. The second stick now has 10 bit of available memory.</p> </li> <li> <p>At the 2<sup>nd</sup> second, 2 bits of memory are allocated to stick 2. The second stick now has 8 bits of available memory.</p> </li> <li> <p>At the 3<sup>rd</sup> second, 3 bits of memory are allocated to stick 1. The first stick now has 5 bits of available memory.</p> </li> <li> <p>At the 4<sup>th</sup> second, 4 bits of memory are allocated to stick 2. The second stick now has 4 bits of available memory.</p> </li> <li> <p>At the 5<sup>th</sup> second, 5 bits of memory are allocated to stick 1. The first stick now has 0 bits of available memory.</p> </li> <li> <p>At the 6<sup>th</sup> second, the program crashes. The sticks have 0 and 4 bits available respectively.</p> </li> </ul> <p><strong>Constraints:</strong></p> <ul> <li><code>0 <= memory1, memory2 <= 2<sup>31</sup> - 1</code></li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • memLeak

      public int[] memLeak(int memory1, int memory2)