2024.3.8力扣每日一题——找出美丽数组的最小和

2024.3.8

题目来源

力扣每日一题;题序:2834

我的题解

方法一 数学

经过分析,在target之前,取小于等于target/2的正整数才能使得和最小,并且满足条件3。
时间复杂度 :O(n)
空间复杂度:O(n)

java 复制代码
public int minimumPossibleSum(int n, int target) {
    if(n==1)
        return 1;
    long res=0;
    int mod=1000000007;
    for(int i=1;i<=target/2&&i<=n;i++){
        res+=i;
    }
    for(int i=target/2;i<n;i++){
        res+=target++;
    }
    return (int)(res%mod);
}
java 复制代码
//优化版本
public int minimumPossibleSum(int n, int target) {
    if(n==1)
        return 1;
    long res=0;
    int mod=1000000007;
    //若target左边取的就已经够n格数了
    if(target/2>=n){
        res+=n*(1L+n)/2;
    }else{
        long t=target/2;
        //target左边可以取的所有正整数的和
        res+=t*(1L+t)/2;
        //左边取了之后,还需要取多少个数
        t=n-t;
        //target本身及其右边可以取的所有正整数的和
        res+=t*(target+target+t-1)/2;
    }
    return (int)(res%mod);
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关推荐
T.Ree.几秒前
cpp_list
开发语言·数据结构·c++·list
暴风鱼划水23 分钟前
算法题(Python)数组篇 | 6.区间和
python·算法·数组·区间和
童话ing35 分钟前
【Golang】常见数据结构原理剖析
数据结构·golang
2301_7965125238 分钟前
Rust编程学习 - 如何利用代数类型系统做错误处理的另外一大好处是可组合性(composability)
java·学习·rust
zl_vslam40 分钟前
SLAM中的非线性优-3D图优化之轴角在Opencv-PNP中的应用(一)
前端·人工智能·算法·计算机视觉·slam se2 非线性优化
是苏浙1 小时前
零基础入门C语言之C语言实现数据结构之顺序表应用
c语言·数据结构·算法
前端架构师-老李1 小时前
进入新岗位的第一课——潜龙勿用
职场和发展
清水1 小时前
Spring Boot企业级开发入门
java·spring boot·后端
一个不称职的程序猿1 小时前
高并发场景下的缓存利器
java·缓存
2301_801252221 小时前
Tomcat的基本使用作用
java·tomcat