欢迎光临散文网 会员登陆 & 注册

Leetcode 1671. Minimum Number of Removals to Make Mountain Array

2023-03-13 12:25 作者:您是打尖儿还是住店呢  | 我要投稿

You may recall that an array arr is a mountain array if and only if:

  • arr.length >= 3

  • There exists some index i (0-indexed) with 0 < i < arr.length - 1 such that:

    • arr[0] < arr[1] < ... < arr[i - 1] < arr[i]

    • arr[i] > arr[i + 1] > ... > arr[arr.length - 1]

Given an integer array nums, return the minimum number of elements to remove to make nums a mountain array.

 

Example 1:

Input: nums = [1,3,1]

Output: 0

Explanation: The array itself is a mountain array so we do not need to remove any elements.

Example 2:

Input: nums = [2,1,1,5,6,2,3,1]

Output: 3

Explanation: One solution is to remove the elements at indices 0, 1, and 5, making the array nums = [1,5,6,3,1].

 

Constraints:

  • 3 <= nums.length <= 1000

  • 1 <= nums[i] <= 109

  • It is guaranteed that you can make a mountain array out of nums

    Hint1:Think the opposite direction instead of minimum elements to remove the maximum mountain subsequence

    Hint2:Think of LIS it's kind of close

    .


分别从2个方向求最大递增数列的长度,然后最终汇总,求最值就行了。。

没想到啊,我也能解决hard级别的题目了。。。,多亏上一道题了;

Runtime: 49 ms, faster than 81.64% of Java online submissions for Minimum Number of Removals to Make Mountain Array.

Memory Usage: 42.2 MB, less than 76.33% of Java online submissions for Minimum Number of Removals to Make Mountain Array.


Leetcode 1671. Minimum Number of Removals to Make Mountain Array的评论 (共 条)

分享到微博请遵守国家法律