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

代码随想录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&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]示例 2&#xff1a; 输入&#xff1a;n 1, k 1 …...

Android Duplicate class 排除重复类

一、起因&#xff1a; 在迭代开发的时候&#xff0c;发现2个ijk很多类重复。但又2个库实现的功能是不一样&#xff0c;目前不能合并。但又想保留2个功能。需要排除其中一个库。 二、报错如何下图&#xff1a; 三、解决方法&#xff1a; 3.1 在terminal 也就是命令行处输入 …...

【Kubernetes】服务(Service)是什么?有什么用?有哪些类型?

系列文章目录 K8s中的Namespace是什么&#xff1f; Kubernetes 集群的组件介绍 Kubernetes 对象是什么&#xff1f; Pod——k8s中最重要的对象之一 Kubernetes 和 Docker 之间有什么区别&#xff1f; 部署安装 K8s 为什么要关闭 swap 分区&#xff1f; k8s中容器之间、pod之间…...

【前端素材】推荐优质后台管理系统DAdmin平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面&#xff0c;通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面&#xff0c;使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…...

Redis高级特性详解:事务处理、发布订阅、持久化和集群

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的基于内存的数据结构存储系统&#xff0c;被广泛应用于缓存、队列、计数器等场景中。除了基本的键值存储功能外&#xff0c;Redis还提供了许多高级特性&#xff0c;包括事务处理、发布订阅、持久化和集群。在…...

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、系统定义 在线特殊品牌商城是指一个通过互联网提供特定品牌或特殊类型商品购买服务的电子商务平台。这类商城专注于某个特定品牌、设计风格或商品类型&#xff0c;为顾客提供独特、专业的购物体验。 2、功能需求 在线特殊品牌商城是指一个通过互联网提供特…...

Redis之一: 简介及环境安装搭建

什么是NoSQL? NoSQL&#xff0c;指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写&#xff0c;是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。&#xff08;例如谷歌或Facebook每天为他们的用户收集万亿比特的数据&#xf…...

关于电脑一天24小时多少度电电脑的一天用电量计算

随着这几年物价的上涨&#xff0c;一些地区的电价越来越高&#xff0c;而我们经常需要使用电脑&#xff0c;那么一台电脑一天24小时用多少度电呢&#xff1f; 如何计算电脑一天的用电量&#xff1f; 让我们跟随小编来了解更多吧。 1、功耗、主机箱功耗 现在的计算机中&#xf…...

Unity3D 物理引擎的基本配置详解

前言 在Unity3D中&#xff0c;物理引擎主要由两部分组成&#xff1a;碰撞检测和物理模拟。在本文中&#xff0c;我们将详细介绍Unity3D物理引擎的基本配置&#xff0c;并给出相应的技术详解和代码实现。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以…...

CSS:弹性盒子Flexible Box布局

CSS:Flexible Box弹性盒子布局 一、flex布局原理 ​ flex是flexible Box的缩写,意为 ”弹性布局“&#xff0c;用来为盒状模型提供最大的灵活性&#xff0c;任何一个容器都可以指定为flex布局。 当我们的父盒子设置为flex布局之后&#xff0c;子元素的 float 、clear 和 vert…...

java常用环境docker安装

配置目录 rocketmqredismysql不配置binlog配置binlog Nacoszookeeper 本文为精简安装&#xff0c;部分不带容器卷映射&#xff0c;仅供以学习使用。 rocketmq nameservice sudo docker run -d \ --privilegedtrue \ --name rmqnamesrv \ -p 9876:9876 \ -e "MAX_HEAP_SI…...

Code-Audit(代码审计)习题记录6-7

介绍&#xff1a; 自己懒得搭建靶场了&#xff0c;靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习&#xff0c;可以随地访问&#xff0c;本文所有的题目均来源于网站HSCSEC-Code Audit 6、习题6 题目内容如下&#xff1a; 源代…...

go 的使用总结

go的内存逃逸&#xff1f; go语言在编辑阶段通过逃逸分析把分配在栈上变量 分配到堆上去。 栈内存&#xff1a; 一段连续的内存&#xff0c;便于高效运行指令过程中的临时变量存储。 堆内存&#xff1a; 主要由垃圾回收器 回收没有被引用的指针。 逃逸分析&#xff1a;栈内…...

无线水电表智能化管理系统

无线水电表智能化管理系统是一项利用先进技术对水电用量进行实时监测和精细管理的创新系统。这一系统通过应用无线通讯技术&#xff0c;实现了水电表数据的远程传输和集中管理&#xff0c;为用户提供了便捷、精准的用能监测和管理服务。 无线水电表智能化管理系统的首要优势在于…...

发掘效率黑科技:Allure报告助您事半功倍提升测试效能!

Allure 简介与安装 Allure 是由 Java 语⾔开发的⼀个轻量级&#xff0c;灵活的测试报告⼯具。 Allure 多平台的 Report 框架。 Allure ⽀持多语⾔&#xff0c;包括 python、JaveScript、PHP、Ruby 等。 可以为开发/测试/管理等人员提供详尽的的测试报告&#xff0c;包括测试…...

Spring Web 过滤器使用常见错误(上)

我们都知道&#xff0c;过滤器是 Servlet 的重要标准之一&#xff0c;其在请求和响应的统一处理、访问日志记录、请求权限审核等方面都有着不可替代的作用。在 Spring 编程中&#xff0c;我们主要就是配合使用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信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…...

在SAP HANA中使用OData(二)

通常有两种方式通过OData来暴露SAP HANA中的数据库对象&#xff0c;一是直接使用Database Object&#xff0c;比如前一篇和本篇文章介绍的例子&#xff0c;这种方式针对于数据已经存在于SAP HANA中&#xff0c;在Repository中没有对应的设计时对象(Design-time Object)&#xf…...

从Layer Norm到Group Norm:深入浅出图解归一化技术的演进与选择

从Layer Norm到Group Norm&#xff1a;深入浅出图解归一化技术的演进与选择 在深度学习模型的训练过程中&#xff0c;归一化技术扮演着至关重要的角色。想象一下&#xff0c;当你试图训练一个复杂的卷积神经网络时&#xff0c;不同层的输入分布可能会发生剧烈变化&#xff0c;这…...

Sora2图生视频避坑指南:从API调用到上线运营,我踩过的5个雷(附前端源码调试技巧)

Sora2图生视频避坑指南&#xff1a;从API调用到上线运营的5个实战陷阱 第一次看到Sora2生成的短视频时&#xff0c;那种震撼感至今难忘——直到我的服务器因为回调地址配置错误被刷爆。作为国内最早一批接入Sora2 API的开发者&#xff0c;我想分享那些官方文档不会告诉你的&qu…...

Qwen3-ForcedAligner-0.6B语音编辑实战:从长会议录音中提取指定发言人片段

Qwen3-ForcedAligner-0.6B语音编辑实战&#xff1a;从长会议录音中提取指定发言人片段 1. 引言&#xff1a;会议录音处理的痛点与解决方案 你是否曾经遇到过这样的情况&#xff1a;一场两小时的会议录音&#xff0c;需要从中找出某个领导说的关键几句话&#xff0c;结果不得不…...

Unity遮罩镂空技术:从新手引导到UI交互的进阶实现

1. 为什么需要遮罩镂空技术 第一次看到游戏里的新手引导效果时&#xff0c;我完全被这种设计吸引了。整个屏幕被半透明的黑色遮罩覆盖&#xff0c;只有需要操作的按钮区域是明亮的&#xff0c;而且点击事件还能精准穿透到指定位置。这种效果不仅视觉上很酷&#xff0c;更重要的…...

剪映自动化终极指南:用Python脚本批量处理视频的完整教程

剪映自动化终极指南&#xff1a;用Python脚本批量处理视频的完整教程 【免费下载链接】JianYingApi Third Party JianYing Api. 第三方剪映Api 项目地址: https://gitcode.com/gh_mirrors/ji/JianYingApi 还在为重复的视频剪辑工作烦恼吗&#xff1f;每天需要处理几十个…...

C语言循环

C语言的循环while、for、do…while… 1、while循环 while(表达式) { 语句&#xff1b; } 先判断表达式&#xff0c;为真时执行while里面的语句&#xff0c;执行大括号中的语句之后&#xff0c;再次回到while处的表达式判断其是否为真&#xff0c;如果为真则继续向下执行&#x…...

5分钟搞定!nanobot超轻量级AI助手快速部署与基础功能体验

5分钟搞定&#xff01;nanobot超轻量级AI助手快速部署与基础功能体验 1. 引言&#xff1a;为什么选择nanobot&#xff1f; 如果你正在寻找一个轻量级但功能强大的AI助手&#xff0c;nanobot绝对值得一试。这个仅用4000行代码实现的AI助手&#xff0c;比传统方案小了99%&#…...

C语言入门:什么是main函数和常见错误

1.问&#xff1a;c语言是什么&#xff1f;它属于一种语言 那是人和计算机交流所用的一种语言 它跟其他计算机语言不一样的一处在于 需要经过编译以及链接 才能够变成可执行程序.exe 计算机识别的是二进制 所以c语言就如同人类把想要表达的事物 借助一种语言 将其转变为二进制的…...

千问3.5-9B Visual Studio Code高效插件配置与AI编程工作流

千问3.5-9B Visual Studio Code高效插件配置与AI编程工作流 1. 为什么需要AI辅助编程工作流 现代软件开发面临诸多挑战&#xff1a;代码复杂度不断提升、技术更新迭代加快、文档维护成本居高不下。传统开发方式下&#xff0c;程序员需要花费大量时间在重复性工作上&#xff0…...

Qwen3.5-9B开发者案例:基于Gradio构建内部知识问答平台

Qwen3.5-9B开发者案例&#xff1a;基于Gradio构建内部知识问答平台 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;具备强大的逻辑推理、代码生成和多轮对话能力。本案例将展示如何基于Gradio框架&#xff0c;快速搭建一个企业内部知识问答平台。 这…...