代码随想录Day20 | Leetcode77 组合
题目
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:
输入:n = 4, k = 2
输出:
[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],
]示例 2:
输入:n = 1, k = 1
输出:[[1]]提示:
1 <= n <= 20
1 <= k <= n
思路
学到了两种非常有用的思路
代码
class Solution:"""给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例 2:输入:n = 1, k = 1输出:[[1]]提示:1 <= n <= 201 <= k <= n"""def combine1(self, n, k):result = []res = []def dfs(i):"""在[1,i]中获取d个数i < d:表示剩下的数量仍小于需要取的数量,可以不用递归,直接返回"""d = k - len(res) # 还需要取d个数# if i< d:return,该条件可换为如下的[d-1, i]if d == 0:result.append(res.copy())return# 从后往前,仅取从i往前的d个数,从前往后的返回条件是:n-i+1+len(res) < k -> n-i+1 < dfor j in range(i, d-1, -1):res.append(j)dfs(j-1)res.pop()dfs(n)return resultdef combine(self, n, k):result = []res = []def dfs(i):"""在[1,i]中获取d个数i < d:表示剩下的数量仍小于需要取的数量,可以不用递归,直接返回"""d = k - len(res) # 还需要取d个数# if i< d:returnif d == 0:result.append(res.copy())return# 不选i,超出d的部分先不选if i > d:dfs(i-1)# 选ires.append(i)dfs(i-1)res.pop()dfs(n)return resultif __name__ == '__main__':test = Solution()n = [4, 1]k = [2, 1]for i in range(len(n)):print(test.combine(n[i], k[i]))print(test.combine1(n[i], k[i]))
总结
时常感叹,别人为什么这么厉害
相关文章:
代码随想录Day20 | Leetcode77 组合
题目 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]示例 2: 输入:n 1, k 1 …...
Android Duplicate class 排除重复类
一、起因: 在迭代开发的时候,发现2个ijk很多类重复。但又2个库实现的功能是不一样,目前不能合并。但又想保留2个功能。需要排除其中一个库。 二、报错如何下图: 三、解决方法: 3.1 在terminal 也就是命令行处输入 …...
【Kubernetes】服务(Service)是什么?有什么用?有哪些类型?
系列文章目录 K8s中的Namespace是什么? Kubernetes 集群的组件介绍 Kubernetes 对象是什么? Pod——k8s中最重要的对象之一 Kubernetes 和 Docker 之间有什么区别? 部署安装 K8s 为什么要关闭 swap 分区? k8s中容器之间、pod之间…...
【前端素材】推荐优质后台管理系统DAdmin平台模板(附源码)
一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面,通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面,使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…...
Redis高级特性详解:事务处理、发布订阅、持久化和集群
Redis(Remote Dictionary Server)是一个开源的基于内存的数据结构存储系统,被广泛应用于缓存、队列、计数器等场景中。除了基本的键值存储功能外,Redis还提供了许多高级特性,包括事务处理、发布订阅、持久化和集群。在…...
nwjs做自动化测试
分别是2个常用的自动化测试化框架 GitHub - nwutils/nw-selenium-javascript-example: An example of end-to-end testing with Selenium for NW.js apps via JavaScript GitHub - nwutils/nw-puppeteer-example: An example of using NW.js via Puppeteer. 看习惯使用哪个&…...
【前端素材】推荐优质在线特殊品牌商城电商网页eStore平台模板(附源码)
一、需求分析 1、系统定义 在线特殊品牌商城是指一个通过互联网提供特定品牌或特殊类型商品购买服务的电子商务平台。这类商城专注于某个特定品牌、设计风格或商品类型,为顾客提供独特、专业的购物体验。 2、功能需求 在线特殊品牌商城是指一个通过互联网提供特…...
Redis之一: 简介及环境安装搭建
什么是NoSQL? NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据…...
关于电脑一天24小时多少度电电脑的一天用电量计算
随着这几年物价的上涨,一些地区的电价越来越高,而我们经常需要使用电脑,那么一台电脑一天24小时用多少度电呢? 如何计算电脑一天的用电量? 让我们跟随小编来了解更多吧。 1、功耗、主机箱功耗 现在的计算机中…...
Unity3D 物理引擎的基本配置详解
前言 在Unity3D中,物理引擎主要由两部分组成:碰撞检测和物理模拟。在本文中,我们将详细介绍Unity3D物理引擎的基本配置,并给出相应的技术详解和代码实现。 对惹,这里有一个游戏开发交流小组,希望大家可以…...
CSS:弹性盒子Flexible Box布局
CSS:Flexible Box弹性盒子布局 一、flex布局原理 flex是flexible Box的缩写,意为 ”弹性布局“,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。 当我们的父盒子设置为flex布局之后,子元素的 float 、clear 和 vert…...
java常用环境docker安装
配置目录 rocketmqredismysql不配置binlog配置binlog Nacoszookeeper 本文为精简安装,部分不带容器卷映射,仅供以学习使用。 rocketmq nameservice sudo docker run -d \ --privilegedtrue \ --name rmqnamesrv \ -p 9876:9876 \ -e "MAX_HEAP_SI…...
Code-Audit(代码审计)习题记录6-7
介绍: 自己懒得搭建靶场了,靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习,可以随地访问,本文所有的题目均来源于网站HSCSEC-Code Audit 6、习题6 题目内容如下: 源代…...
go 的使用总结
go的内存逃逸? go语言在编辑阶段通过逃逸分析把分配在栈上变量 分配到堆上去。 栈内存: 一段连续的内存,便于高效运行指令过程中的临时变量存储。 堆内存: 主要由垃圾回收器 回收没有被引用的指针。 逃逸分析:栈内…...
无线水电表智能化管理系统
无线水电表智能化管理系统是一项利用先进技术对水电用量进行实时监测和精细管理的创新系统。这一系统通过应用无线通讯技术,实现了水电表数据的远程传输和集中管理,为用户提供了便捷、精准的用能监测和管理服务。 无线水电表智能化管理系统的首要优势在于…...
发掘效率黑科技:Allure报告助您事半功倍提升测试效能!
Allure 简介与安装 Allure 是由 Java 语⾔开发的⼀个轻量级,灵活的测试报告⼯具。 Allure 多平台的 Report 框架。 Allure ⽀持多语⾔,包括 python、JaveScript、PHP、Ruby 等。 可以为开发/测试/管理等人员提供详尽的的测试报告,包括测试…...
Spring Web 过滤器使用常见错误(上)
我们都知道,过滤器是 Servlet 的重要标准之一,其在请求和响应的统一处理、访问日志记录、请求权限审核等方面都有着不可替代的作用。在 Spring 编程中,我们主要就是配合使用ServletComponentScan 和 WebFilter 这两个注解来构建过滤器。 说起…...
【数据结构】周末作业
1.new(struct list_head*)malloc(sizeof(struct list_head*)); if(newNULL) { printf("失败\n"); return; } new->nextprev->next; prev->nextnew; return; 2.struct list_head* pprev->next; prev->nextp->next; p->next->prevpr…...
java 企业培训管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目
一、源码特点 java 企业培训管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…...
在SAP HANA中使用OData(二)
通常有两种方式通过OData来暴露SAP HANA中的数据库对象,一是直接使用Database Object,比如前一篇和本篇文章介绍的例子,这种方式针对于数据已经存在于SAP HANA中,在Repository中没有对应的设计时对象(Design-time Object)…...
如何用一款开源工具永久保存200+小说网站的内容?
如何用一款开源工具永久保存200小说网站的内容? 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 在数字阅读时代,最令人不安的体验莫过于某天打开收藏夹&#…...
华硕笔记本性能控制新选择:G-Helper完全使用指南
华硕笔记本性能控制新选择:G-Helper完全使用指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, a…...
PvZ Toolkit:植物大战僵尸PC版终极修改指南
PvZ Toolkit:植物大战僵尸PC版终极修改指南 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit PvZ Toolkit是一款功能强大的植物大战僵尸PC版综合修改器,专为玩家打造个性化游戏…...
C++零基础到工程实战(4.3.2):栈区与堆区数组代码演示
目录 一、本节学习内容概要 二、前言 三、栈区数组代码演示 3.1 栈区数组定义 3.2 值访问与地址访问 3.3 栈区数组大小计算 3.4 栈区数组必须是编译时常量 四、堆区数组代码演示 4.1 基本定义与访问 4.2 值与地址访问 4.3 手动释放 4.4 堆区数组动态大小示例 4.5 …...
UE5蓝图实战:用VaRest插件5分钟搞定天气API调用与JSON数据解析
UE5蓝图实战:用VaRest插件5分钟搞定天气API调用与JSON数据解析 在游戏开发中,实时数据集成已经成为提升玩家体验的重要手段之一。想象一下,你的开放世界游戏能够根据现实世界的天气变化动态调整游戏内的气候效果,或者你的城市模拟…...
如何用强化学习高效解决复杂组合优化问题:RL4CO完整实战指南
如何用强化学习高效解决复杂组合优化问题:RL4CO完整实战指南 【免费下载链接】rl4co A PyTorch library for all things Reinforcement Learning (RL) for Combinatorial Optimization (CO) 项目地址: https://gitcode.com/gh_mirrors/rl/rl4co 你是否曾为物…...
Matlab高手进阶:用textscan函数解析日志文件,提取关键信息的完整流程
Matlab日志解析实战:textscan函数高效提取关键信息的全流程指南 当服务器日志像雪片般涌来时,工程师们常常面临一个共同困境——如何从海量非结构化文本中快速提取有价值的信息?Matlab的textscan函数正是解决这类问题的瑞士军刀。不同于简单的…...
像素幻梦·创意工坊入门指南:理解‘位移物理反馈’背后的CSS transform逻辑
像素幻梦创意工坊入门指南:理解位移物理反馈背后的CSS transform逻辑 1. 走进像素幻梦的世界 Pixel Dream Workshop(像素幻梦创意工坊)是一款基于FLUX.1-dev扩散模型的像素艺术生成工具。与传统AI绘图工具不同,它采用了独特的16…...
从零到一:OpenClaw 数字员工全流程实战指南
从零到一:OpenClaw 数字员工全流程实战指南 OpenClaw(昵称“小龙虾”)是2026年最火的开源AI智能体框架,GitHub星标超28万。它之所以被称为“数字员工”而非“聊天机器人”,核心区别在于:它能真正“动手干活…...
网盘下载速度革命:如何用开源工具突破8大平台限速瓶颈
网盘下载速度革命:如何用开源工具突破8大平台限速瓶颈 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...
