首页 > 其他分享 >2024.3.8力扣每日一题——找出美丽数组的最小和

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

时间:2024-04-03 19:31:05浏览次数:54  
标签:2024.3 return target int res long 力扣 数组 mod

2024.3.8

题目来源

力扣每日一题;题序:2834

我的题解

方法一 数学

经过分析,在target之前,取小于等于target/2的正整数才能使得和最小,并且满足条件3。

时间复杂度:O(n)
空间复杂度:O(n)

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);
}
//优化版本
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);
}

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

标签:2024.3,return,target,int,res,long,力扣,数组,mod
From: https://blog.csdn.net/weixin_42075274/article/details/137350322

相关文章

  • 详解volatile 关键字的作用,Java 中能创建 volatile 数组吗
    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点面试官:volatile关键字的作用可见性:当一个线程修改了volatile变量的值,这个新值对于其他线程是立即可见的。这是因为在多线程环境下,线程在修改volatile变量的值时......
  • KES中数组和集合类型的区别
    文章概要:本文属于学习总结系列,总结了一下数组类型和PL/SQL中集合类型及其使用区别。一,集合(collection)数据它是存放一组数据类型相同的数据,是一组相同类型元素的集合集合数据类型分三类:1).关联数组(indexbytables)元素下标:binary_integer、pls_integer、varchar2字符串......
  • 代码随想录 Day34 贪心算法 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果
    1005.K次取反后最大化的数组和 classSolution{public:intlargestSumAfterKNegations(vector<int>&nums,intk){sort(nums.begin(),nums.end());intsum=0;inti=0;while(k>0){nums[i]=0-nums[i]......
  • Go_ if else语句 ,,循环,,switch,,数组
    if-else语句//if语法if定义变量;条件{}elseif条件{}else{}//输入分数,打印成绩等级packagemainimport"fmt"//iffuncmain(){ //1接收用户输入 varscoreint=0 fmt.Print("请输入分数:") fmt.Scan(&score) showLevel(score)......
  • acwing算法基础课学习记录2(2024.3.29)
    对昨日的补充朴素dijkstra算法模板:1.dist[i]=+INFdist[1]=02.fori1~nn次t<-不在s中的距离最近的点(s:当前已经确定最短距离的点存储在内)n次s<-tn次用t更新其他点的距离总共m次堆优化版dij......
  • 力扣
    目录题目法一、模拟法二、规律题目给定一个非负整数num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。示例1:输入:num=38输出:2解释:各位相加的过程为:38-->3+8-->1111-->1+1-->2由于2是一位数,所以返回2。示例2:输入:num=0输......
  • 转轮数组
    1、题目要求给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]2、题解1class......
  • 力扣热门算法题 322. 零钱兑换,344. 反转字符串,347. 前 K 个高频元素
    322.零钱兑换,344.反转字符串,347.前K个高频元素,每题做详细思路梳理,配套Python&Java双语代码,2024.04.02 可通过leetcode所有测试用例。目录322.零钱兑换解题思路完整代码PythonJava​编辑344.反转字符串解题思路完整代码PythonJava​编辑347.前K个高频......
  • 力扣热门算法题 349. 两个数组的交集,387. 字符串中的第一个唯一字符,394. 字符串解码
    349.两个数组的交集,387.字符串中的第一个唯一字符,394.字符串解码,每题做详细思路梳理,配套Python&Java双语代码,2024.04.02 可通过leetcode所有测试用例。目录349.两个数组的交集解题思路完整代码PythonJava387.字符串中的第一个唯一字符解题思路完整代码Python......
  • 蓝桥杯算法集训 - Week 5:树状数组、各类DP算法
    蓝桥杯算法集训-Week5本系列随笔用于整理AcWing题单——《蓝桥杯集训·每日一题2024》的系列题型及其对应的算法模板。一、树状数组树状数组是一种数据结构,可以快速地完成以下两个操作:将第i个数加上c快速求前缀和,即任意区间[i,j]的和Ⅰ、代码模板//树状数组长度......