当前位置: 首页 > news >正文

网页制作报价徐州seo外包平台

网页制作报价,徐州seo外包平台,商城app搭建,千川广告投放平台2025/032829. k-avoiding 数组的最小总和2712. 使所有字符相等的最小成本2716. 最小化字符串长度 2025/03 2829. k-avoiding 数组的最小总和 上 回溯, class Solution:def minimumSum(self, n: int, k: int) -> int:# 思路:对任何一个正整数 x&…

  • 2025/03
    • 2829. k-avoiding 数组的最小总和
    • 2712. 使所有字符相等的最小成本
    • 2716. 最小化字符串长度

2025/03

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

在这里插入图片描述
上 回溯,

class Solution:def minimumSum(self, n: int, k: int) -> int:# 思路:对任何一个正整数 x,不能同时存在 k-xnums = []ans =  2501def backtrace(x):nonlocal ansif sum(nums) > ans:  # 剪枝,比 ans 还大不需要考虑return if len(nums) == n:  # 终止条件,数组塞满了ans = min(sum(nums), ans)return for i in range(1, 80):if i not in nums and (k - i) not in nums:  # 当 k-i 不在数组中才可以选nums.append(i)   # 做选择backtrace(x+1)  # 递归nums.pop()   # 撤销选择returnbacktrace(1)  # 从小的正整数开始return ans

不出意外就会超时了!

上 贪心,举例来说, 假设不能选和为 4 的数对,肯定选 1 不选 3 啊! O ( n ) O(n) O(n)

class Solution:def minimumSum(self, n: int, k: int) -> int:# 思路:对任何一个正整数 x,不能同时存在 k-xnums = []sum = 0for i in range(1, 100):if len(nums) == n:  # 如果够 n 个就退出循环breakif (k-i) not in nums:  # k-i 不在就塞进数组nums.append(i)sum += ireturn sum

过了,但是还能优化,直接上数学公式, O ( 1 ) O(1) O(1)

class Solution:def minimumSum(self, n: int, k: int) -> int:# 思路:对任何一个正整数 x,不能同时存在 k-xif 2 * n <= k:return sum(range(1, n + 1))  # 注意 range 左闭右开part_num = k - (k // 2 + 1)return sum(range(1, k // 2 + 1)) + sum(range(k, n + part_num + 1))

2712. 使所有字符相等的最小成本

在这里插入图片描述

class Solution:def minimumCost(self, s: str) -> int:# 思路:反转为全 '0' 或全 '1',从中间往两边反转n = len(s)mid = n // 2def reverse_to(to):""" 反转为 to """cost = 0reverse = Falsefor i in range(mid, -1, -1):if (s[i] != to and not reverse) or (s[i] == to and reverse):cost += i + 1reverse = not reversereverse = Falsefor j in range(mid + 1, n):if (s[j] != to and not reverse) or (s[j] == to and reverse):cost += n - jreverse = not reversereturn costreturn min(reverse_to('0'), reverse_to('1'))

2716. 最小化字符串长度

在这里插入图片描述

说人话,不就是去重嘛!上 数据结构,

class Solution:def minimizedStringLength(self, s: str) -> int:return len(set(s))

散了散了。。。

http://www.dtcms.com/a/434853.html

相关文章:

  • jQuery简化了事件的绑定和解除,常用的方法有.on()和.off()
  • [Dify] 知识库切片逻辑解析:段落切分 vs 语义块切分,该怎么选?
  • [Windows] 发票识别工具。支持xml、pdf、ofd文件
  • 流量安全——基于Sentinel实现限流,熔断,降级
  • Semaphore GUI 详细介绍
  • 中山网站优化营销做专业课视频课的网站
  • 元表纪基于一个Excel表实现一键发货、打印面单
  • 企业外贸网站建设建设一个直播网站多少钱
  • 网站建设需要基础吗电子商务网站建设与管理是什么
  • 【LeetCode - 每日1题】换水问题1
  • 资深面试之MySQL 问题及解答(一)
  • 自定义脚手架
  • 云空间布置网站seo顾问赚钱吗
  • 网络设备中的硬件转发和软件转发
  • 永州建设网站公司网站开发费的税率是多少
  • js时间格式转化器
  • 攻防世界-Web-Web_php_unserialize
  • Deep Learning|01 RBF Network
  • 指针步长:C/C++内存操控的核心法则
  • 服装网站建设分析wordpress模板如何用
  • wordpress后台菜单管理程序代码优化网站
  • Windows 常用短文件名(8.3 格式)介绍
  • 【stm32】【edgetx】解析链接脚本文件(ld)
  • 商务网站构建与维护网站建设所有权
  • C语言速成秘籍——跳转语句(goto)
  • WPF实现串口热插拔 (提供百度网盘源代码)
  • 企业网站关键词排名南京比较好的网络策划公司
  • FFmpeg 核心 API 系列:avcodec_find_decoder / avcodec_alloc_context3 / avcodec_open2
  • 文件上传简单的绕过总结
  • Visual Studio Code中launch.json深度解析:C++调试的艺术