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);
}

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

相关推荐
JH30733 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
颜酱4 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_736919104 小时前
C++代码风格检查工具
开发语言·c++·算法
yugi9878384 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
Coder_Boy_4 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
DuHz4 小时前
超宽带脉冲无线电(Ultra Wideband Impulse Radio, UWB)简介
论文阅读·算法·汽车·信息与通信·信号处理
invicinble4 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
Polaris北极星少女4 小时前
TRSV优化2
算法
较真的菜鸟4 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖5 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言