当前位置:首页|资讯

GFG 75 Total Cuts

作者:您是打尖儿还是住店呢发布时间:2024-09-26

切割总数

给你一个由 N 个整数和一个整数 K 组成的数组 A,你的任务是计算你可以进行的剪切总数,使得每次剪切都满足以下两个条件 

1. 一次切割将数组分成相等或不相等的两部分。

2. 左边最大元素与右边最小元素之和大于或等于 K。

例 1:

输入

N=3

K=3

A[]={1,2,3}

输出: 2

2

解释:

为满足上述条件,数组有两种划分方式:

{1} 和 {2,3} -> 1+2>=3(满足条件)

{1,2} 和 {3} -> 2+3>=3(满足条件)

例 2:

输入

N=5

K=5

A[]={1,2,3,4,5}

输出: 3

3

说明:{1,2}和{3,4,5

{1,2}和 {3,4,5} -> 2+3>=5

{1,2,3}和 {4,5} -> 3+4>=5

{1,2,3,4}和{5} -> 4+5>=5 -> 4+5>=5

您的任务

你不需要读取输入或打印任何内容。你的任务是完成函数 totalCuts(),它接受两个整数 N、K 和一个大小为 N 的数组 A 作为输入参数,并返回一个整数,表示满足两个条件的切割总数。

限制条件

1 <= N <= 10^6

0 <= K <= 10^9

0 <= A[i] <= 10^6


通过DeepL.com(免费版)翻译

----

第一个想法是用treemap来保存最小值,每次更新即可,但是会超时,所以就换成用数组来把保存,这样会快些。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1