首页 > 其他分享 >Day 9:2829. k-avoiding 数组的最小总和

Day 9:2829. k-avoiding 数组的最小总和

时间:2024-06-02 16:29:07浏览次数:23  
标签:tmp 数组 int avoiding 2829 removeCount res Day

Leetcode 2829. k-avoiding 数组的最小总和

给你两个整数 n 和 k 。
对于一个由 不同 正整数组成的数组,如果其中不存在任何求和等于 k 的不同元素对,则称其为 k-avoiding 数组。
返回长度为 n 的 k-avoiding 数组的可能的最小总和。

image.png

n 个不同正整数的最小总和,那就是从 1 到 n 的总和,但是还有一个要求就是不存在任何求和等于 k 的。因此接下来要删除掉这一部分数据。

从 1 开始判断,到 k / 2,删除和为 k 的最大的一个值,在加上一个 n 后的元素。

上述会有一个 bug,例如 n = 3, k =5 的情况,当判断 1 时,4 是不存在的,不用处理;当判断 2 时,删除 3,加一个 3 后面的数,也就是 4。此时又有 4 了,就会出现问题。

因此 ,从 k / 2 往 1 遍历,就不会出现判断时没有的元素,后来又被加上去的情况。因为判断会先删除小的,再删除大的。因此不会出现上述情况。

完整代码

class Solution {
    public int minimumSum(int n, int k) {
        int res = 0;
        for (int i = 1; i <= n; i++) {
            res += i;
        }

        int removeCount = 0;
        for (int i = k / 2; i > 0; i--) {
            int tmp = k - i;
            if (tmp > (n + removeCount)) continue;
            if (tmp == i) continue;
            res -= tmp;
            removeCount++;
            res += n + removeCount;
        }
        return res;
    }
}

标签:tmp,数组,int,avoiding,2829,removeCount,res,Day
From: https://blog.csdn.net/weixin_46091073/article/details/139372638

相关文章

  • 基于DAYU800开发板的OpenHarmony设备发环境搭建
    简介润和-SCDAYU800开发平台基于平头哥高性能RISC-V开源架构曳影TH1520芯片,集成4核高性能RISC-V处理器玄铁C910的平头哥曳影1520,AI算力达4TOPs支持蓝牙、音频、视频和摄像头等功能,支持多种视频输入输出接口,并提供丰富的扩展接口,可用于工控平板、智慧大屏、智......
  • day45 1049.最后一块石头的重量II 494.目标和 474.一和零
    1049.最后一块石头的重量II本题其实就是尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,这样就化解成01背包问题了。本题物品的重量为stones[i],物品的价值也为stones[i]。对应着01背包里的物品重量weight[i]和物品价值value[i]。思路:动规五部曲1.确定dp数组以及下......
  • day46 完全背包理论基础 518. 零钱兑换 II 377. 组合总和 Ⅳ
    完全背包理论基础有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。01背包内嵌的循环是从大到小遍历,为了保证每个物品仅被添加一次。而完全......
  • day44 01背包问题 416. 分割等和子集
    背包问题01背包有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。暴力的解法每一件物品其实只有两个状态,取或者不取,所以可以使用回溯法搜索出所有的情况,那么......
  • 【WEEK14】 【DAY5】Swagger第三部分【中文版】
    2024.5.31Friday接上文【WEEK14】【DAY4】Swagger第二部分【中文版】目录16.6.配置API分组16.6.1.修改SwaggerConfig.java16.6.2.重启16.7.实体配置16.7.1.新建pojo文件夹16.7.2.修改HelloController.java16.7.3.重启16.8.常用注解16.8.1.Swagger的所有注解定义在i......
  • ACWing算法基础课刷题记录2024-06-01--2day
    831.KMP字符串给定一个字符串 S......
  • ACWing算法基础课刷题记录2024-05-31--1day
    ###827.双链表###C++实现原题链接:827.双链表-AcWing题库实现一个双链表,双链表初始为空,支持 55 种操作:在最左侧插入一个数;在最右侧插入一个数;将第 k......
  • 前端面试题日常练-day47 【面试题】
    题目希望这些选择题能够帮助您进行前端面试的准备,答案在文末1.在Bootstrap中,以下哪个类用于创建一个具有响应式的栅格系统?a).grid-systemb).responsive-gridc).container-fluidd).grid-responsive2.哪个Bootstrap类用于创建一个具有圆角边框的按钮?a).btn-rou......
  • 今日指数day01学习笔记
    1、项目概述    该项目是基于股票实时交易的数据分析产品,为用户和机构提供个性化的股票数据分析和展示服务    核心功能:数据分析和展示为主,功能涵盖了A股大盘实时指数展示、涨幅榜、个股涨跌、个股秒级行情、实时日K线行情等2、股票相关名词    股......
  • Day 11 | 20. 有效的括号 、1047. 删除字符串中的所有相邻重复项 、150. 逆波兰表达式
    20.有效的括号讲完了栈实现队列,队列实现栈,接下来就是栈的经典应用了。大家先自己思考一下有哪些不匹配的场景,在看视频我讲的都有哪些场景,落实到代码其实就容易很多了。题目链接/文章讲解/视频讲解:https://programmercarl.com/0020.有效的括号.html思考classSolution:......