Class Solution
java.lang.Object
g1601_1700.s1659_maximize_grid_happiness.Solution
1659 - Maximize Grid Happiness.<p>Hard</p>
<p>You are given four integers, <code>m</code>, <code>n</code>, <code>introvertsCount</code>, and <code>extrovertsCount</code>. You have an <code>m x n</code> grid, and there are two types of people: introverts and extroverts. There are <code>introvertsCount</code> introverts and <code>extrovertsCount</code> extroverts.</p>
<p>You should decide how many people you want to live in the grid and assign each of them one grid cell. Note that you <strong>do not</strong> have to have all the people living in the grid.</p>
<p>The <strong>happiness</strong> of each person is calculated as follows:</p>
<ul>
<li>Introverts <strong>start</strong> with <code>120</code> happiness and <strong>lose</strong> <code>30</code> happiness for each neighbor (introvert or extrovert).</li>
<li>Extroverts <strong>start</strong> with <code>40</code> happiness and <strong>gain</strong> <code>20</code> happiness for each neighbor (introvert or extrovert).</li>
</ul>
<p>Neighbors live in the directly adjacent cells north, east, south, and west of a person’s cell.</p>
<p>The <strong>grid happiness</strong> is the <strong>sum</strong> of each person’s happiness. Return <em>the <strong>maximum possible grid happiness</strong>.</em></p>
<p><strong>Example 1:</strong></p>
<p><img src="https://assets.leetcode.com/uploads/2020/11/05/grid_happiness.png" alt="" /></p>
<p><strong>Input:</strong> m = 2, n = 3, introvertsCount = 1, extrovertsCount = 2</p>
<p><strong>Output:</strong> 240</p>
<p><strong>Explanation:</strong> Assume the grid is 1-indexed with coordinates (row, column).</p>
<p>We can put the introvert in cell (1,1) and put the extroverts in cells (1,3) and (2,3).</p>
<ul>
<li>
<p>Introvert at (1,1) happiness: 120 (starting happiness) - (0 * 30) (0 neighbors) = 120</p>
</li>
<li>
<p>Extrovert at (1,3) happiness: 40 (starting happiness) + (1 * 20) (1 neighbor) = 60</p>
</li>
<li>
<p>Extrovert at (2,3) happiness: 40 (starting happiness) + (1 * 20) (1 neighbor) = 60</p>
</li>
</ul>
<p>The grid happiness is 120 + 60 + 60 = 240.</p>
<p>The above figure shows the grid in this example with each person’s happiness. The introvert stays in the light green cell while the extroverts live on the light purple cells.</p>
<p><strong>Example 2:</strong></p>
<p><strong>Input:</strong> m = 3, n = 1, introvertsCount = 2, extrovertsCount = 1</p>
<p><strong>Output:</strong> 260</p>
<p><strong>Explanation:</strong> Place the two introverts in (1,1) and (3,1) and the extrovert at (2,1).</p>
<ul>
<li>
<p>Introvert at (1,1) happiness: 120 (starting happiness) - (1 * 30) (1 neighbor) = 90</p>
</li>
<li>
<p>Extrovert at (2,1) happiness: 40 (starting happiness) + (2 * 20) (2 neighbors) = 80</p>
</li>
<li>
<p>Introvert at (3,1) happiness: 120 (starting happiness) - (1 * 30) (1 neighbor) = 90</p>
</li>
</ul>
<p>The grid happiness is 90 + 80 + 90 = 260.</p>
<p><strong>Example 3:</strong></p>
<p><strong>Input:</strong> m = 2, n = 2, introvertsCount = 4, extrovertsCount = 0</p>
<p><strong>Output:</strong> 240</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>1 <= m, n <= 5</code></li>
<li><code>0 <= introvertsCount, extrovertsCount <= min(m * n, 6)</code></li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
getMaxGridHappiness
(int m, int n, int introvertsCount, int extrovertsCount)
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
getMaxGridHappiness
public int getMaxGridHappiness(int m, int n, int introvertsCount, int extrovertsCount)
-