美容美发网站模板服装定制设计公司

news/2025/9/29 1:36:14/文章来源:
美容美发网站模板,服装定制设计公司,广州地铁18号线,腾讯社交广告平台题目 给定两个整数 n 和 k#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案 提示#xff1a;假设 n5,k3 就是需要组合出来#xff0c;长度3且内容数据是在[1,n]这个区间内的所有可能得组合 同时一个组合里面内个数字只能出现一次#…题目 给定两个整数 n 和 k返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案 提示假设 n5,k3 就是需要组合出来长度3且内容数据是在[1,n]这个区间内的所有可能得组合 同时一个组合里面内个数字只能出现一次[1,2,3]、[3,2,1]、[2,1,3]...等这种只要里面的内容相同尽管顺序不否相同都认为是同一个组合 题解 说实话刚开始看到这个题不知道怎么下手看了看官方的题解大概理解了思路然后根据刚才理解的思路和自己的感觉慢慢摸索出最终的结果。 如果还有看了还不理解的同学可以先用官方的代码打印出来一个结果看是最终是要一个什么结果 比如我刚开始也看不明吧这个题目想干嘛然后我尝试用官方的代码打印出来 n5 k3 的结果 [[1 2 3] [1 2 4] [1 2 5] [1 3 4] [1 3 5] [1 4 5] [2 3 4] [2 3 5] [2 4 5] [3 4 5]] 然后我就明白了原来如此 开始动手写思路-思路1 虽然我已经看过了知道要用递归但是我在自己写的时候还是将复杂的东西拆分出来拆成自己可以理解的容易看懂且方便继续往下想的思路 func combine1(n int, k int) [][]int {// 根据题目可以确定 k 不可能大于 nmResult : make([][]int, 0)mSlice : make([]int, k)mIdx : 0// 判断当前的组合长度是否满足// 秉承一个条件就是确定第一位是那个数字后面的数字不能比第一个数字小// 然后就是枚举出所有可能的下一位数字的排序一直重复这个想法// 当前的第一个数字确定mFirstNum : 1// 将这个数插入数组中mSlice[mIdx] mFirstNum// 判断这个数组插入的数据是否已经满足足够的数量if mIdx k-1 {// 满足则将这个数组插入到结果集中mTempSlice : make([]int, k)copy(mTempSlice, mSlice)mResult append(mResult, mTempSlice)}// 满足的后面就不用插入了考虑不使用插入的最后这个数据看是否可以继续替换别的数据继续进行return mResult }写到这里看是否合理-思路2 上面的代码片段写了后想了想好像是可行的既然是可行的继续完善当然这里我是知道最后是要用递归写的所以后续写的思路会偏向递归的想法 func combine2(n int, k int) [][]int {mResult : make([][]int, 0)mSlice : make([]int, k)mIdx : 0// // 当前使用到的数据mCurNum : 1if mCurNum n {// 当前使用的数字已经超了规定直接退出就行}if mIdx k {// 已经超过数组的长度了后面的都不用算了直接可以退出了}// 后续这里还可以提前预判一波判断后面剩余的长度能否塞满数组不能的话也没必要继续下去了// 这里直接将这个数插入到数组中mSlice[mIdx] mCurNummIdxmCurNum// 判断当前的数组是否刚好塞满如果刚好塞满就可以将其插入到返回数组中if mIdx k {mTempSlice : make([]int, k)copy(mTempSlice, mSlice)mResult append(mResult, mTempSlice)} else {// 是如果没有塞满继续刚才的步骤判断数字大小、数组长度、预判后续长度是否满足 ...}// 到这里就感觉好像中间部分的数据组合还有遗漏的上面的部分只考虑到了替换 Slice[k] 这个位置数据// 前面部分都是固定的前面可能还有很多种组合没有实现// 这里就要考虑一下前面部分的比如现在是第一个数就不要 1 这个数字插入数组mIdx--// 前面选择的数字已经自增了这里将数组的下表调回去然后进行上面同样的判断计算// 先 判断数字大小、数组长度、预判后续长度是否满足 ...// return mResult }答案的雏形-思路3 到这里代码应该怎么写的雏形已经出来了然后以及哪些参数是需要进行传递的心里大致都会有数了然后进行代码填充 func execFunc(aResult *[][]int, aSlice []int, aIdx, aCurNum, n int) {if aCurNum n {return}if aIdx len(aSlice) {return}// n-aCurNum1 假设最大值n5 当前插入数字aCurNum4 此时5-412 表示还有2个数(4、5)可以使用// 然后加上数组已经插入的个数 aIdx 如果还不够填充数组那么后面的都不会满足条件if n-aCurNum1aIdx len(aSlice) {return}aSlice[aIdx] aCurNumif aIdx1 len(aSlice) {mTempSlice : make([]int, len(aSlice))copy(mTempSlice, aSlice)*aResult append(*aResult, mTempSlice)}// 如果数据还没填满继续进行数据填满了也会执行到这里会在里面的判断直接退出了execFunc(aResult, aSlice, aIdx1, aCurNum1, n)// 这里就考虑前面部分假设这里没有将这个值插入到数组中从而进行下个值的插入execFunc(aResult, aSlice, aIdx, aCurNum1, n) }func combine3(n int, k int) [][]int {mResult : make([][]int, 0)mSlice : make([]int, k)execFunc(mResult, mSlice, 0, 1, n)return mResult }到这里可以说是结束了但是这递归方法的参数有点多并且提交的运行结果内存占用并不是很满意我想着官方的代码中用到了闭包我感觉那种好像会省点内存毕竟在go中方法的入参大部分都是值传递可以理解为把传进来的参数复制了一份使用的 另一种写法 在思路完全不变的情况下使用上官方的套路看看结果就是确实有点用 func combine4(n int, k int) [][]int {mResult : make([][]int, 0)mSlice : make([]int, k)var mFunc func(aIdx, aCurNum int)mFunc func(aIdx, aCurNum int) {if aCurNum n {return}if aIdx k {return}if n-aCurNum1aIdx k {return}mSlice[aIdx] aCurNumif aIdx1 k {mTempSlice : make([]int, k)copy(mTempSlice, mSlice)mResult append(mResult, mTempSlice)}mFunc(aIdx1, aCurNum1)mFunc(aIdx, aCurNum1)}mFunc(0, 1)return mResult }提交记录 题目来源力扣题库 一点点笔记以便以后翻阅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做家装家居网站家庭带宽100m做网站

目录 训练保姆级教程: instant ngp安装参考: 编译步骤1 编译步骤2 我把编译成功的库分享到百度网盘了 训练保姆级教程: 英伟达NeRF项目Instant-ngp在Windows下的部署,以及数据集的制作(适合小白的保姆级教学)_colmap2nerf.p…

聊城手机网站建设多少钱曲阜网站建设哪家便宜

一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的。C/C中的内存机制是“谁污染…

【SimpleFOC】区分BLDC霍尔安装间隔60还是120

02 霍尔安装角度辨别当我们拿到一个新的三相直流无刷电机时,可以通过测量三个霍尔信号,然后分析它们之间的关系即可知道霍尔的安装角度间隔是60度电角度还是120度电角度。那么,60度电角度跟120度电角度在三路霍尔波…

如何经营一个购物网站网站流量所需的成本.

前言 本节内容会着重介绍jenkins持续集成开发工具的一些常用插件安装以及全局工具的配置安装,并说明其主要作用。在开始插件和工具安装之前,我们要保证可以正常访问网络,并且使用国内的插件更新地址,便于插件的正常安装。官方的地…

4 个支持在线编辑的PPT模板网站,不用下载软件!

​ 4 个支持在线编辑的 PPT 模板网站,不用下载软件 加班到晚上 8 点,领导突然让你明天一早交一份项目汇报 PPT,电脑里没装 PPT 软件,下载安装又要花半个多小时?别慌,这 4 个支持在线编辑的 PPT 模板网站,能帮你…

[GenAI] 提示词工程

RCT构词法 提示词工程是一门专注于 LLM 输入的学科,主要目的是以尽可能程序化的方式生成理想的输出。角色(Role) 上下文(Context) 任务(Task)上下文 在为 LLM 编写输入文本的时候,需要尽可能详细的描述上下文。…

郑州个人做网站黑龙江省建设安全监督网站

JDK 自带排序(Arrays.sort(数组名))与自行编写的降序 jdk 自带的排序 Arrays.sort(数组名) 只能进行升序排列 可以与自己写的降序 配合使用 import java.util.Arrays;public class Test1 {//jdk 自带升序public static void m1(int [] arr1) {Arrays.sor…

做网站的厉害还是黑网站的厉害wordpress房产插件

SD卡数据的写入或者读取,需要将数据写入SDIO的FIFO寄存器,然后通过FIFO寄存器进行数据的发送。FIFO寄存器是32位的寄存器,操作 SDIO_FIFO(不论读出还是写入)必须是以 4 字节对齐的内存进行操作,否则将导致出…

关于第一次使用latex写文章

关于第一次使用latex写文章一次简单的latex公式输出 整体的代码\usepackage{amsmath, bookmark,amsthm, amssymb, graphicx} \usepackage{ctex} \usepackage{geometry} \geometry{a4paper, scale=0.9} \title{Homework…

东莞勒流网站制作wordpress 美观插件

以下内容源于C语言中文网的学习与整理&#xff0c;非原创&#xff0c;如有侵权请告知删除。 一、Makefile中的函数格式 函数的调用和变量的调用很像。引用变量的格式为$(变量名)&#xff0c;而函数调用的格式如下&#xff1a; $(<function> <arguments>) 或者是…

设计好的网站推荐网页制作与维护

点击查看专栏目录 文章目录 一、qca-logger插件介绍二、QCA下载三、文件分析四、pro文件五、编译实践5.1 windows下编译5.2 linux下编译5.3 macos下编译一、qca-logger插件介绍 QCA::Logger 是 Qt Cryptographic Architecture (QCA) 库中的一个类,它提供了一个简单而灵活的日志…

相册网站开发昌平网站开发公司

强制类型转换形式&#xff1a;(类型说明符) (表达式)举例说明&#xff1a;1) int a;a (int)1.9;2)char *b;int *p;p (int *) b; //将b的值强制转换为指向整型数据的指针类型&#xff0c;后赋给p注示&#xff1a;类型说明符和表达式都必须加括号&#xff0c;表达式为单个变量可…

建设局工程网站成功的网络营销案例及分析

随着电子商务的繁荣和移动支付技术的发展&#xff0c;网络支付已成为全球消费者日常生活中不可或缺的一部分。然而&#xff0c;这种便捷的支付方式也带来了许多安全风险&#xff0c;这些风险可能威胁到用户的财务安全和个人隐私。本文将深入探讨网络支付面临的主要安全风险&…

res := model.UserConsume{}与res := model.UserConsume{}区别

在Go语言中,res := &model.UserConsume{} 与 res := model.UserConsume{} 的主要区别在于变量的类型和内存分配方式: 类型差异res := &model.UserConsume{}:创建一个 *model.UserConsume类型的变量(指针类…

学校校园网站网站管理员中心

Function.apply(obj,args)方法能接收两个参数&#xff0c;简单说apply方法作用就是给类或方法中的this赋值。所以学会这个方法首先要知道this的作用。(this的用法可以看一下这个链接&#xff1a;http://www.cjavapy.com/article/8/ )obj&#xff1a;这个对象将代替Function类里…

图论010203

图论01&02&03代码问题很多问题都是由母问题衍生出来的,所以核心工具函数甚至不需要怎么变化,只需要在调用函数之前增加判断语句即可,妙哉~ 淹没孤岛的核心是 “先区分非孤岛和孤岛”:边缘相连的是非孤岛,…

搜索引擎网站推广jsp网站开发文献

会一直持续更新。。。 Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时…

西安网站设计开发前端开发培训费用

一、基本概念 与MVC模式不同&#xff0c;MV视图架构中没有包含一个完全分离的组件来处理与用户的交互。 一般地&#xff0c;视图用来将模型中的数据显示给用户&#xff0c;也用来处理用户的输入。为了获得更高的灵活性&#xff0c;交互可以由委托来执行。 这些组件提供了输入…

南通 网站优化济南mip网站建设

EtherCAT主站SOEM -- 37 -- win-soem-win10及win11系统QT-SOEM-1个电机转圈圈-周期同步速度模式(CSV模式) 0 QT-SOEM及STM32F767-SOEM视频欣赏及源代码链接:0.1 Linux--Ubuntu系统之 QT-SOEM博客、视频欣赏及源代码链接0.2 STM32F767-SOEM 博客、视频欣赏及源代码链接0.3 wi…

郑州知名做网站公司网络推广的方法和技巧可以学吗

SWOT分析法&#xff1a;一个综合的方法&#xff0c;可以分析、评估并提出决策建议&#xff0c;需要结合内部因素分析、外部因素分析、综合评价&#xff0c;和辅助决策等一系列方法才能完成鱼骨图分析法&#xff1a;层次分析法的图形展示5M因素分析法&#xff1a;分析法&#xf…