java.lang.Object
g1601_1700.s1643_kth_smallest_instructions.Solution

public class Solution extends Object
1643 - Kth Smallest Instructions.<p>Hard</p> <p>Bob is standing at cell <code>(0, 0)</code>, and he wants to reach <code>destination</code>: <code>(row, column)</code>. He can only travel <strong>right</strong> and <strong>down</strong>. You are going to help Bob by providing <strong>instructions</strong> for him to reach <code>destination</code>.</p> <p>The <strong>instructions</strong> are represented as a string, where each character is either:</p> <ul> <li><code>'H'</code>, meaning move horizontally (go <strong>right</strong> ), or</li> <li><code>'V'</code>, meaning move vertically (go <strong>down</strong> ).</li> </ul> <p>Multiple <strong>instructions</strong> will lead Bob to <code>destination</code>. For example, if <code>destination</code> is <code>(2, 3)</code>, both <code>&quot;HHHVV&quot;</code> and <code>&quot;HVHVH&quot;</code> are valid <strong>instructions</strong>.</p> <p>However, Bob is very picky. Bob has a lucky number <code>k</code>, and he wants the <code>k<sup>th</sup></code> <strong>lexicographically smallest instructions</strong> that will lead him to <code>destination</code>. <code>k</code> is <strong>1-indexed</strong>.</p> <p>Given an integer array <code>destination</code> and an integer <code>k</code>, return <em>the</em> <code>k<sup>th</sup></code> <em><strong>lexicographically smallest instructions</strong> that will take Bob to</em> <code>destination</code>.</p> <p><strong>Example 1:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2020/10/12/ex1.png" alt="" /></p> <p><strong>Input:</strong> destination = [2,3], k = 1</p> <p><strong>Output:</strong> &ldquo;HHHVV&rdquo;</p> <p><strong>Explanation:</strong> All the instructions that reach (2, 3) in lexicographic order are as follows: [&ldquo;HHHVV&rdquo;, &ldquo;HHVHV&rdquo;, &ldquo;HHVVH&rdquo;, &ldquo;HVHHV&rdquo;, &ldquo;HVHVH&rdquo;, &ldquo;HVVHH&rdquo;, &ldquo;VHHHV&rdquo;, &ldquo;VHHVH&rdquo;, &ldquo;VHVHH&rdquo;, &ldquo;VVHHH&rdquo;].</p> <p><strong>Example 2:</strong></p> <p><strong><img src="https://assets.leetcode.com/uploads/2020/10/12/ex2.png" alt="" /></strong></p> <p><strong>Input:</strong> destination = [2,3], k = 2</p> <p><strong>Output:</strong> &ldquo;HHVHV&rdquo;</p> <p><strong>Example 3:</strong></p> <p><strong><img src="https://assets.leetcode.com/uploads/2020/10/12/ex3.png" alt="" /></strong></p> <p><strong>Input:</strong> destination = [2,3], k = 3</p> <p><strong>Output:</strong> &ldquo;HHVVH&rdquo;</p> <p><strong>Constraints:</strong></p> <ul> <li><code>destination.length == 2</code></li> <li><code>1 <= row, column <= 15</code></li> <li><code>1 <= k <= nCr(row + column, row)</code>, where <code>nCr(a, b)</code> denotes <code>a</code> choose <code>b</code>.</li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • kthSmallestPath

      public String kthSmallestPath(int[] destination, int k)