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

【代码随想录二刷】Day24-回溯-C++

代码随想录二刷Day24

今日任务

理论基础
77.组合
语言:C++

理论基础

  1. 解决的问题
    ① 组合问题:不考虑顺序
    ② 切割问题
    ③ 子集问题
    ④ 排列问题:考虑顺序
    ⑤ 棋盘问题:N皇后,解数独
  2. 回溯法三部曲
    ① 回溯函数模板返回值以及参数
    函数名:backtracking
    返回值:void
    参数:先写逻辑,再确定需要什么参数
    ② 回溯函数终止条件:搜索到叶子节点
    ③ 回溯搜索的遍历过程
  3. for循环是横向遍历,backtracking(递归)是纵向遍历
  4. 回溯模板
void backtracking(参数){if(终止条件){存放结果;return;}for(选择:本层集合中的元素(树中节点孩子的数量就是集合的大小)){处理节点;backtracking();回溯,撤销处理结果;}
}

77. 组合

链接:https://leetcode.cn/problems/combinations/

class Solution {
public:vector<vector<int>> res;vector<int> combination;//curLen没有必要,直接combination.size()即可void backtracking(int n, int k, int cur, int curLen){if(curLen == k){res.push_back(combination);return;}for(int i = cur; i <= n; i++){combination.push_back(i);backtracking(n, k, i + 1, curLen + 1);combination.pop_back();}}vector<vector<int>> combine(int n, int k) {backtracking(n, k, 1, 0);return res;}
};

剪枝优化

class Solution {
public:vector<vector<int>> res;vector<int> combination;void backtracking(int n, int k, int cur){if(combination.size() == k){res.push_back(combination);return;}//循环终止条件优化for(int i = cur; i <= n - (k - combination.size()) + 1; i++){combination.push_back(i);backtracking(n, k, i + 1);combination.pop_back();}}vector<vector<int>> combine(int n, int k) {backtracking(n, k, 1);return res;}
};

在这里插入图片描述

可以看到剪枝优化后效率有了很大提升
在这里插入图片描述

相关文章:

【代码随想录二刷】Day24-回溯-C++

代码随想录二刷Day24 今日任务 理论基础 77.组合 语言&#xff1a;C 理论基础 解决的问题 ① 组合问题&#xff1a;不考虑顺序 ② 切割问题 ③ 子集问题 ④ 排列问题&#xff1a;考虑顺序 ⑤ 棋盘问题&#xff1a;N皇后&#xff0c;解数独回溯法三部曲 ① 回溯函数模板返回…...

Kubernetes中YAML 文件简介

我们在安装 kubernetes 集群的时候使用了一些 YAML 文件来创建相关的资源&#xff0c;但是对 YAML 文件还是非常陌生。所以我们先来简单看一看 YAML 文件是如何工作的&#xff0c;并使用 YAML 文件来定义一个 kubernetes pod&#xff0c;然后再来定义一个 kubernetes deploymen…...

骨传导耳机是怎么发声的,骨传导耳机值得入手嘛

现在市面上除了我们平时比较常见的有线耳机、头戴耳机、真无线耳机&#xff0c;近两年还涌现出了一种有着黑科技之称的特别耳机——骨传导耳机&#xff0c;并且因其在运动场景下的优势过于明显而得到了众多运动爱好者的大力追捧。那么今天我们就来聊聊这款所谓的黑科技骨传导耳…...

会声会影2023官方新功能介绍

深入简单直观的视频编辑&#xff01;使用 Corel VideoStudio会声会影2023&#xff0c;将您最美好的时刻和生活体验变成令人惊叹的电影&#xff0c;这是一款有趣且直观的视频编辑器&#xff0c;包含高级工具和高级效果。从自定义标题和过渡&#xff0c;到 Mask Creator、Color G…...

vue:pdf.js使用细节/隐藏按钮/设置、获取当前页码/记录阅读进度/切换语言(国际化)

需求描述 在网页中预览pdf时&#xff0c;希望实现3点需求&#xff1a;1、隐藏一些功能按钮&#xff08;比如下载&#xff09;&#xff1b;2、打开pdf时自动定位到最后浏览的页&#xff08;记录阅读进度&#xff09;&#xff1b;3、实现国际化&#xff08;在代码中更改pdf插件使…...

RocketMQ实现延迟队列精确到秒级实现

前言篇&#xff1a;为了节约成本&#xff0c;决定通过自研来改造rocketmq&#xff0c;添加任意时间延迟的延时队列&#xff0c;开源版本的rocketmq只有支持18个等级的延迟时间&#xff0c;其实对于大部分的功能是够用了的&#xff0c;但是以前的项目&#xff0c;全部都是使用了…...

线性数据结构:数组 Array

一、前言数组是数据结构还是数据类型&#xff1f;数组只是个名称&#xff0c;它可以描述一组操作&#xff0c;也可以命名这组操作。数组的数据操作&#xff0c;是通过 idx->val 的方式来处理。它不是具体要求内存上要存储着连续的数据才叫数组&#xff0c;而是说&#xff0c…...

大数据开发-Hive

1、hive简介 hive是基于Hadoop的一个数据仓库工具&#xff0c;用于分析数据的。可以将结构化数据文件映射为一张数据库表&#xff0c;并提供类SQL查询功能 注&#xff1a;hive-SQL or HQL or类SQL 和标准SQL还是有一点点区别的 本质是SQL转换为MapReduce程序 用途&#xff1…...

《程序员新声》-Tech Lead 如何带领团队

收听本期播客 谢谢收听程序员新声&#xff0c;这是一款来自思特沃克&#xff08;Thoughtworks&#xff09;的播客节目。在这里&#xff0c;我们不仅讨论软件和技术领域的现状和未来&#xff0c;更关注程序员的成长世界。如何学习&#xff0c;如何晋升&#xff0c;如何带领团队…...

每日算法面试题

🧝‍♂️算法题 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。 示例 1:输入:x = 2.00000, n = 10 输出:1024.00000示例 2:输入:x = 2.10000, n = 3 输出:9.26100示例 3:输入:x...

高质量前端之自动化测试

前端自动化测试&#xff1a;Testing Library 篇 引言 前端测试 静态测试 eslint、TypeScript 单元测试 jest、mocha 集成测试 enzyme、react-testing-library、mock 爬虫 前后端解耦 为什么要引入自动化测试 测试可以让开发者站在用户的角度考虑问题&#xff0c;通过测试的手…...

2023不伤人脉的全新商城分销,一劳永逸的消费分红

2023不伤人脉的全新商城分销&#xff0c;一劳永逸的消费分红 2023-02-24 11:52梦龙 2023不伤人脉的全新商城分销&#xff0c;一劳永逸的消费分红 如今是流量为王的时代&#xff0c;但是如何将流量转化为忠实客户是个难题。不再是单向的买卖关系&#xff0c;而是从对产品的关注…...

【代码随想录训练营】【Day21】第六章|二叉树|530.二叉搜索树的最小绝对差|501.二叉搜索树中的众数|236. 二叉树的最近公共祖先

二叉搜索树的最小绝对差 题目详细&#xff1a;LeetCode.530 这道题使我第一次了解到二叉树的双指针遍历法&#xff0c;详细可以先查看卡哥的讲解视频&#xff1a;《代码随想录 — 二叉搜索树中的众数》 利用二叉搜索树的特点&#xff1a; 中序遍历二叉搜索树得到一个有序序…...

leaflet 导出图片,打印图片(A4横版或竖版)

第093个 点击查看专栏目录 本示例的目的是介绍如何在vue+leaflet中打印图片导出图片。一个简单的leaflet插件示例,添加了一个图标来打印或导出地图。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共85行)安装插…...

Java面向对象:继承特性的学习

本文介绍了面向对象的继承特性: 什么是继承 继承的概念 Java中继承的语法 在继承下父类成员的访问 super和this关键字 父类和子类构造方法 在继承下类中出现初始化代码的执行顺序 父类成员的访问权限对子类的可见性 Java的继承关系 final关键字 认识继承和组合关系 继承特性的学…...

问答系统(QA)调研

引言 智能问答系统广泛用于回答人们以自然语言形式提出的问题&#xff0c;经典应用场景包括&#xff1a;智能语音交互、在线客服、知识获取、情感类聊天等。根据QA任务&#xff0c;可以将QA大致分为5大类&#xff0c;分别为&#xff1a; 文本问答&#xff08;text-based QA&am…...

商务租车的三大优势吸引企业以租代购

随着社会机经济的高速发展&#xff0c;租车模式的日益盛行&#xff0c;租车不仅仅是受个体户的青睐&#xff0c;而作为环保经济的出行方式也让越来越多的企业开始选择以租代买&#xff0c;据调查统计&#xff0c;最早开始商务租车的群体是外企。而近几年&#xff0c;国内的很多…...

蓝桥杯的比赛流程和必考点

蓝桥杯的比赛流程和必考点 距省赛仅1个多月&#xff01;蓝桥杯的比赛流程和必考点&#xff0c;你还不清楚&#xff1f; “巷子里的猫很自由&#xff0c;却没有归宿&#xff1b;围墙里的狗有归宿&#xff0c;终身都得低头。人生这道选择题&#xff0c;怎么选都会有遗憾。” 但不…...

【数据结构】红黑树

红黑树一、红黑树的概念二、红黑树的接口2.1 插入三、验证四、源码一、红黑树的概念 红黑树也是一个二叉搜索树&#xff0c;他是通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;最长路径长度不超过最短路径长度的 2 倍保持近似平衡。他在每个节点添加了一…...

从C++的角度理解C#的Event

由于技术背景是C起家的&#xff0c;所以对于C的概念很清楚&#xff0c;遇到C#的EVENT时候&#xff0c;总感觉这个概念比较抽象&#xff0c;不容易理解&#xff0c;但是当使用函数指针和回调函数来理解EVENT的时候&#xff0c;这个概念就清晰了。 首先对于EVENT来讲&#xff0c…...

OpenAI破解80年数学猜想:AI首次完成原创性科学突破

2026年5月21日,一个普通的工作日,数学界却迎来了一场地震。OpenAI的内部通用推理模型,独立证明了离散几何领域一个悬置近80年的核心猜想——而且不是证明了它成立,而是直接推翻了它。 目录 引言:一个简单到小学生都能理解的问题 Erdős单位距离猜想:80年的数学悬案 AI突破…...

在taotoken控制台查看与分析api用量数据的实践心得

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Taotoken控制台查看与分析API用量数据的实践心得 1. 引言 对于任何将大模型API集成到应用或工作流中的开发者或团队而言&#x…...

5步掌握LyricsX:macOS平台歌词同步的终极解决方案

5步掌握LyricsX&#xff1a;macOS平台歌词同步的终极解决方案 【免费下载链接】LyricsX &#x1f3b6; Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX 在macOS生态系统中&#xff0c;LyricsX作为一款开源歌词同步工具&#xff0…...

79万中文医疗对话数据集:构建智能医疗问答系统的核心技术资源

79万中文医疗对话数据集&#xff1a;构建智能医疗问答系统的核心技术资源 【免费下载链接】Chinese-medical-dialogue-data Chinese medical dialogue data 中文医疗对话数据集 项目地址: https://gitcode.com/gh_mirrors/ch/Chinese-medical-dialogue-data 在医疗人工智…...

从注册到第一笔消费Taotoken新手指南与核心功能全景

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从注册到第一笔消费&#xff1a;Taotoken 新手指南与核心功能全景 应用场景类&#xff0c;面向完全新接触 Taotoken 平台的用户&am…...

【限时技术白皮书】:DeepSeek全版本演进时间轴+企业级选型 checklist(含许可证限制红线)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek模型版本选择 DeepSeek 提供多个公开可获取的模型版本&#xff0c;涵盖不同参数规模、推理精度与部署场景需求。正确选择版本是构建高性能AI应用的前提&#xff0c;需综合考量硬件资源、延迟要求、任务…...

ChatGPT可视化输出总失真?深度解析其底层渲染引擎限制(基于OpenAI v4.12.3源码逆向分析)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;ChatGPT可视化输出失真现象的实证观察 在实际工程调试与教学演示中&#xff0c;开发者频繁反馈 ChatGPT&#xff08;尤其是通过 API 或网页界面返回 Markdown 渲染结果&#xff09;对代码块、数学公式、表格及…...

Cursor Pro工具完整指南:5步实现AI编程助手设备标识管理方案

Cursor Pro工具完整指南&#xff1a;5步实现AI编程助手设备标识管理方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached yo…...

HS2-HF Patch:为HoneySelect2打造的全能增强解决方案

HS2-HF Patch&#xff1a;为HoneySelect2打造的全能增强解决方案 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 如果你正在寻找一种简单高效的方式来提升Honey…...

WeChatMsg:如何将微信聊天记录转化为永久数字资产

WeChatMsg&#xff1a;如何将微信聊天记录转化为永久数字资产 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg…...