🗒️2829. k-avoiding 数组的最小总和
2024-12-26
| 2024-12-26
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Dec 26, 2024 03:16 AM
给你两个整数 n 和 k 。
对于一个由 不同 正整数组成的数组,如果其中不存在任何求和等于 k 的不同元素对,则称其为 k-avoiding 数组。
返回长度为 n 的 k-avoiding 数组的可能的最小总和。

数学法

阶梯判断
  • 当数组中所有数的求和小于 k,直接输出
  • 当数组中最大的数对和小于 k,直接输出
  • 数组中有数对大于 k,我们从 k / 2 + 1k (左闭右开),加上差值即可。
💡
在 cpp 中的整型计算中 k - (k / 2 + 1) != k / 2 - 1;
例如 k = 3:
k / 2 = 1
  • k - (k / 2 + 1) = 3 - (1 + 1) = 1
  • k / 2 - 1 = 1 - 1 = 0
因为,当 k 为奇数中,会向下取整,因此正确的写法为(k + 1) / 2 - 1
第一和第二种情况可以合并

📎 参考

  • 【题单】数学算法
  • Important
  • 2579. 统计染色格子数343. 整数拆分
    Loading...