43.哀家要长脑子了!

1.39. 组合总和 - 力扣(LeetCode)

对于这类寻找所有可行解的问题,都可以尝试使用 [搜索回溯] 的方法。以下是朴素不减脂的方法,我昨天吃了个干煸炒面,巨朴素。。。一点都不减脂,但是很好吃~~~

class Solution {
private:void dfs(vector<int> &candidates, vector<vector<int>> &ans, int target, vector<int> combine, int idx) {if(idx == candidates.size()) return;if(target == 0){ans.emplace_back(combine);return;}          dfs(candidates, ans, target, combine, idx+1);// 等于0的情况是当下的元素也满足条件构造一个答案if(target - candidates[idx] >= 0){combine.emplace_back(candidates[idx]);// 元素可以重复使用所以不用idx+1dfs(candidates, ans, target - candidates[idx], combine, idx);combine.emplace_back();}}    
public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {vector<int> combine;vector<vector<int>> ans;dfs(candidates, ans, target, combine, 0);return ans;}
};

第一个return 是当索引超出候选范围时停止,避免无效的递归。第二个return 是已经找到一个结果,该分支下没有再找的必要。combine.pop_back(); 是重要的一步,回溯的核心思想就在这里了,它帮助我们撤销选择,是算法尝试其他的组合。

2.70. 爬楼梯 - 力扣(LeetCode)

 玛雅 这有好多种方法,用最简单的递归会超时。

class Solution {
public:int climbStairs(int n) {// p:从第i-2阶走两步的方法的数量// q:从第i-1阶走一步这种方法的数量// r;走到第i阶的方法总数int p = 0, q = 0, r = 1;for(int i = 1; i <= n; i++) {p = q; // 计算这一轮到达i-2的方法数量 等于 上一轮从i-1走一步的方法数量q = r; // 计算这一轮到达i-1的方法数量 等于 到达上一轮i的方法数量r = p + q;}/*初始化状态在地面,即走到0阶梯,只有1种方法,原地不动。当要走到阶梯1时,从-1阶梯开始走两步有0种走法,从0阶梯开始走一步有1种走法 共1种当要走到阶梯2时,从0阶梯开始走两步有1种走法,从1阶梯开始走一步有1种走法 共2种当要走到阶梯3时,从1阶梯开始走两步有2种走法,从2阶梯开始走一步有1种走法 共3种*/return r;}
};
3.79. 单词搜索 - 力扣(LeetCode)

class Solution {
public:int rows,cols;bool exist(vector<vector<char>>& board, string word) {rows = board.size();cols = board[0].size();for(int i = 0; i < rows; i++) {for(int j = 0; j < cols; j++) {if(dfs(board, word, i, j, 0)) return true;}}return false;}
private:bool dfs(vector<vector<char>>& board, string word, int i, int j, int idx) {if(i < 0 || i >= rows || j < 0 || j >= cols || board[i][j] != word[idx])return false;if(idx == word.size() - 1) return true;board[i][j] = '\0';bool res = dfs(board, word, i, j-1, idx+1) || dfs(board, word, i-1, j, idx+1) ||dfs(board, word, i, j+1, idx+1) || dfs(board, word, i+1, j, idx+1);board[i][j] = word[idx];return res;}
};

其实我觉得这是一道中规中矩的递归搜索题。。。 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED 思科 Catalyst 9000 交换产品系列 IOS XE 系统软件 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-catalyst-9000/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&…

双指针的用法以及示例

当然可以&#xff01;双指针&#xff08;Two Pointers&#xff09;是一种常用的算法技巧&#xff0c;特别适用于处理数组或链表等线性数据结构的问题。以下是双指针用法的总结&#xff1a; 双指针用法总结 基本概念&#xff1a; 双指针技术使用两个指针在数据结构上进行遍历&a…

河海大学《2020年+2021年827自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《25届河海大学827自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2020年复试真题 2021年初试真题 Part1&#xff1a;完整版真题 2020年复试真题 2021年…

GEO数据的下载和处理|GEO数据转换为Gene symbol|GEO注释文件提取symbol|查看样本标签|查看GEO数据疾病或正常|生物信息基础

GEO数据的下载和处理|GEO数据转换为Gene symbol|GEO注释文件提取symbol|查看样本标签|查看GEO数据疾病或正常|生物信息基础 数据的下载和处理 首先在GEO数据库中通过GSE ID找到相关数据&#xff0c;然后下载txt文件。 数据读取与处理。 #设置工作路径&#xff0c;也就是你的…

CCS6 软件及仿真器驱动安装

1 CCS6 软件获取 TI 的官网上下载: http://www.ti.com/tools-software/ccs.html 注意 首先 win32 是 CCS 安装包支持 64 位系统,我们电脑也是 64 位系统也是安装的 win32 的安装包,另外 TI 只提供 win32 的安装包,无 win64 的安装包。 2 CCS6 软件安装 CCS如果获取提供的…

获取无人机经纬度是否在指定禁飞区内

1. 计算公式: (AB X AE ) * (CD X CE) >= 0 && (DA X DE ) * (BC X BE) >= 0 参考: 判断点是否在矩形框(多边形)内_qt opencv 判断一点是否在矩形内-CSDN博客 2.测试结果: 3.实现完整代码: #include<cstd

Python数据分析 Pandas基本操作

Python数据分析 Pandas基本操作 一、Series基础操作 ​ Series是pandas的基础数据结构&#xff0c;它可以用来创建一个带索引的一维数组&#xff0c;下面开始介绍它的基础操作 1、创建Series 1&#xff09;使用数据创建Series&#xff1a; import pandas as pd pd.Series(1…

【用Java学习数据结构系列】用堆实现优先级队列

看到这句话的时候证明&#xff1a;此刻你我都在努力 加油陌生人 个人主页&#xff1a;Gu Gu Study 专栏&#xff1a;用Java学习数据结构系列 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xff…

RK3562/3588系列之6—yolov5模型的部署

RK3562/3588系列之6—yolov5模型的部署 1.yolov5模型训练2.训练好的模型转成onnx格式3.模型从onnx格式转RKNN3.1 onnx2rknn.py3.2 onnx2rknn.py3.3 直接使用rknn.api3.4 rknn_model_zoo中的转换代码3.5 LubanCat-RK系列板卡官方资料4.RK NPU c++推理4.1交叉编译4.2 开发板执行编…

整数在内存中的存储原码反码补码

目录 1.整数在内存中以二进制的形式存在 1.1&#xff08;正数存储情况&#xff09; 1.2 负数存储情况 1.3整数的补码如何得到原码 2.无符号整数的原反补码 小心&#xff01;VS2022不可直接接触&#xff0c;否则&#xff01;没这个必要&#xff0c;方源面色淡然一把抓住&am…

ChatGPT提示词-中文版(awesome-chatgpt-prompts中文版)

原是Github上110.6K星的项目&#xff1a;GitHub - f/awesome-chatgpt-prompts: This repo includes ChatGPT prompt curation to use ChatGPT better. 我翻译成了中文需要自提 我用夸克网盘分享了「Chat GPT提示词.csv」&#xff0c;点击链接即可保存。打开「夸克APP」在线查看…

为解决bypy大文件上传报错—获取百度云文件直链并使用Aria2上传文件至服务器

问题描述 一方面组内的服务器的带宽比较小&#xff0c;另一方面使用bypy方式进行大文件(大于15G)上传时会报错&#xff08;虽然有时可以成功上传&#xff0c;但是不稳定&#xff09;&#xff1a; 解决方式 总体思路: 获得云盘需要下载文件的直链复制直链到服务器中使用自带…

CRM如何助力科技服务机构突破业务瓶颈?

在当今知识经济时代&#xff0c;科技服务机构面临着复杂的业务环境和多样化的客户需求。客户管理系统&#xff08;CRM&#xff09;在这个领域的应用正逐渐成为机构提升运营效率、优化客户服务的关键。 科技服务行业的业务特点 知识产权代理行业具有高度的专业性和复杂性。其业…

[记录一个bug]流媒体服务瓶颈排查

一、抛砖 最近有一个服务器上的rtmp直播服务,搭载了1k路后,无法支撑高码率如6M 8M的视频推流,推流会导致掉帧到个位数。但是看了top和vmstat,没发现明显的瓶颈。程序的单进程多线程,但是在另一台配置更低的服务器上,却没问题。 所以这里干脆记录下瓶颈排查步骤和方法吧。…

跟《经济学人》学英文:2024年09月14日这期 Demand for high-end cameras is soaring

Demand for high-end cameras is soaring The ubiquity of smartphones has helped ubiquity: 美 [juːˈbɪkwəti] 到处存在&#xff1b;遍在 注意发音 原文&#xff1a; Buying a Leica feels like buying a piece of art. Made in Germany, the cameras are sold in th…

《JavaEE进阶》----15.<Spring Boot 日志>

本篇文章将记录我学习SpringBoot日志 1.日志文件的用途 2.SpringBoot日志文件的配置 3.用lombook依赖引入Slf4j注解&#xff0c;从而引入log对象。方便我们打印日志。 一、日志的作用 日志主要是为了发现问题、分析问题、定位问题。除此之外、日志还有许多其他的用途。 1.系统监…

Linux基础---07文件传输(网络和Win文件)

Linux文件传输地图如下&#xff0c;先选取你所需的场景&#xff0c;若你是需要Linux和Linux之间传输文件就查看SCP工具即可。 一.下载网站文件 前提是有网&#xff1a; 检查网络是否畅通命令&#xff1a;ping www.baidu.com&#xff0c;若有持续的返回值就说明网络畅通。Ctr…

国家网信办就人工智能生成合成内容标识征求意见

国家互联网信息办公室发布《人工智能生成合成内容标识办法&#xff08;征求意见稿&#xff09;》&#xff0c;该办法根据《中华人民共和国网络安全法》、《互联网信息服务算法推荐管理规定》、《互联网信息服务深度合成管理规定》、《生成式人工智能服务管理暂行办法》等法律法…

Neo4j入门案例:西游记

创建一个基于《西游记》中“孙悟空”的黑神话版本的知识图谱。这个图谱将会包括《西游记》中的一些主要角色、地点、事件以及它们之间的关系。我们将创建至少10个节点和20个关系&#xff0c;并提供相应的Cypher语句。 数据模型定义 实体类型&#xff08;节点&#xff09; 角色…

在conda虚拟环境中安装cv2(试错多次总结)

首先保证你创建好了虚拟环境&#xff0c;并在anaconda命令窗口激活虚拟环境 依次输入下列命令&#xff1a; pip install opencv-python3.4.1.15 pip install opencv-contrib-python3.4.1.15 pip install dlib19.6.1 然后测试cv2是否可以使用&#xff0c;输入python 运行pyth…