「每日LeetCode」2022年10月24日
本文最后更新于:2023年3月19日 晚上
915.分割数组
915.分割数组
Category | Difficulty | Likes | Dislikes |
---|---|---|---|
algorithms | Medium (47.27%) | 187 | - |
Tags
Companies
给定一个数组 nums ,将其划分为两个连续子数组 left 和 right, 使得:
- left 中的每个元素都小于或等于 right 中的每个元素。
- left 和 right 都是非空的。
- left 的长度要尽可能小。
_在完成这样的分组后返回 left 的 **长度 **_。
用例可以保证存在这样的划分方法。
示例 1:
输入:nums = [5,0,3,8,6] 输出:3 解释:left = [5,0,3],right = [8,6]
示例 2:
输入:nums = [1,1,1,0,6,12] 输出:4 解释:left = [1,1,1,0],right = [6,12]
提示:
- 2 <= nums.length <= 105
- 0 <= nums[i] <= 106
- 可以保证至少有一种方法能够按题目所描述的那样对 nums 进行划分。
思路
遍历两次:第一次从头拿到左边数组最大值,从尾巴开始拿到右边数组最小的值。第二次,从头开始找,找到第一个左边数组最大值大于下一个元素右边数组最小值的下标返回即可。
解答
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!