Golang | Leetcode Golang题解之第40题组合总和II

embedded/2024/9/24 6:13:51/

题目:

题解

func combinationSum2(candidates []int, target int) (ans [][]int) {sort.Ints(candidates)var freq [][2]intfor _, num := range candidates {if freq == nil || num != freq[len(freq)-1][0] {freq = append(freq, [2]int{num, 1})} else {freq[len(freq)-1][1]++}}var sequence []intvar dfs func(pos, rest int)dfs = func(pos, rest int) {if rest == 0 {ans = append(ans, append([]int(nil), sequence...))return}if pos == len(freq) || rest < freq[pos][0] {return}dfs(pos+1, rest)most := min(rest/freq[pos][0], freq[pos][1])for i := 1; i <= most; i++ {sequence = append(sequence, freq[pos][0])dfs(pos+1, rest-i*freq[pos][0])}sequence = sequence[:len(sequence)-most]}dfs(0, target)return
}func min(a, b int) int {if a < b {return a}return b
}

http://www.ppmy.cn/embedded/10752.html

相关文章

Java8 中map中删除元素的简单方法

通过values删除 map.values().removeIf(value -> !value.contains("1"));通过keySet删除 map.keySet().removeIf(key -> key ! 1);通过entrySet删除 map.entrySet().removeIf(entry -> entry.getKey() ! 1);

盲人导航设备制造:赋能独立出行,革新生活体验

作为资深记者&#xff0c;我有幸亲历了一场由盲人导航设备制造领域创新成果所驱动的独立出行体验。一款名为蝙蝠避障的导航辅助应用&#xff0c;以其实时避障功能与便捷的人体工学设计&#xff0c;彻底改变了视障人士的出行方式&#xff0c;使之更加安全、自由。 首先&#xf…

spring-core:理解@AliasFor注解的作用

AliasFor是spring注解体系中一个非常重要且基础的注解。顾名思义&#xff0c;它的基本作用就是为注解字段定义一个别名。 基本作用&#xff1a;字段别名 Testpublic void test3AliasFor() {try {{CasbanScan casbanScan AnnotationUtils.findAnnotation(UserSummy.class, Cas…

中国人民解放军信息支援部队成立

中国人民解放军信息支援部队成立 ----------强化信息化战争能力&#xff0c;维护国家安全 阅读须知&#xff1a; 探索者安全团队技术文章仅供参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作,由于传播、利用本公众号所提供的技术和信息而造成的任何直接或…

CP6350-1008-0020倍福工控机主板维修Beckhoff工业机器人主机电脑深圳捷达工控维修

在工业自动化领域&#xff0c;倍福工控机主板以其卓越的稳定性和高效性能&#xff0c;广泛应用于各种控制系统。然而&#xff0c;即便是高质量的硬件设备&#xff0c;也难免会出现故障。CP6350-1008-0020倍福工控机主板维修&#xff0c;就是针对这一型号主板可能出现的各种问题…

redis原理篇(黑马程序员虎哥 )回忆笔记

原理&#xff0c;老师讲的真好。相见恨晚。 以下内容是按视频课程的章节安排&#xff0c;在我自己听完课之后&#xff0c;凭借记忆总结的。&#xff08;可能存在疏漏不足&#xff0c;后期补全和修正&#xff0c;同时也在这个过程巩固我自己的对于这个组件相关原理的学习&#x…

Mysql学习一

目录 1.启动数据库&#xff1a; 2.命令行连接到MySQL&#xff08;winr输入cmd&#xff09; 3.MySQL的三重结构&#xff1a; 4.SQL语句分类&#xff1a; 1.启动数据库&#xff1a; winr——输入services.msc进入本地服务 2.命令行连接到MySQL&#xff08;winr输入cmd&#x…

vue keepAlive的使用

一、了解keepAlive 1.1 Vue 中的 keep-alive 是什么? keep-alive 是 Vue.js 的一个内置组件,它用于缓存不活动的组件实例,而不是销毁它们。在 Vue 应用中,当组件被包含在 keep-alive 组件中时,该组件在切换时不会被销毁,而是被保存在一个内存中,这可以显著提升大型应用…