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

代码随想录算法训练营第二十四天|leetcode78、90、93题

一、leetcode第93题

class Solution {
public:vector<string> restoreIpAddresses(string s) {int n = s.size();vector<string> res;function<void(string, int, int)> dfs = [&](string ss, int idx, int t) -> void {// 终止条件,枚举完,使用了4次`.`,需要删掉一个`.`if (idx == n || t == 4) {if (idx == n && t == 4) {ss.pop_back();res.push_back(ss);}return;}// 枚举位数,从idx下标开始i个位数for (int i = 1; i <= 3; ++ i) {if (i + idx > n) return;if (i != 1 && s[idx] == '0') return;if (i == 3 && stoi(s.substr(idx, 3)) > 255) return;dfs(ss + s.substr(idx, i) + ".", idx + i, t + 1);}};dfs("", 0, 0);return res;}
};

二、leetcode第78题

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startIndex) {result.push_back(path); // 收集子集,要放在终止添加的上面,否则会漏掉自己if (startIndex >= nums.size()) { // 终止条件可以不加return;}for (int i = startIndex; i < nums.size(); i++) {path.push_back(nums[i]);backtracking(nums, i + 1);path.pop_back();}}
public:vector<vector<int>> subsets(vector<int>& nums) {result.clear();path.clear();backtracking(nums, 0);return result;}
};

三、leetcode第90题

class Solution {vector<vector<int>> res;vector<int> path;//组合问题设置stratindex:为了防止重复//排列问题从0开始void dfs(vector<int>&nums,int startindex,vector<bool>&st){res.push_back(path);//先加入答案if(startindex>=nums.size()){return;}for(int i=startindex;i<nums.size();i++){//树层去重if(i>0&&nums[i-1]==nums[i]&&st[i-1]==false) continue;st[i]=true;path.push_back(nums[i]);dfs(nums,i+1,st);st[i]=false;path.pop_back();}}
public:vector<vector<int>> subsetsWithDup(vector<int>& nums) {vector<bool> st(nums.size(),false);sort(nums.begin(),nums.end());dfs(nums,0,st);return res;}
};

http://www.lryc.cn/news/321209.html

相关文章:

  • Java学习笔记NO.20
  • 关系型数据库mysql(1)基础认知和安装
  • WanAndroid(鸿蒙版)开发的第三篇
  • 全国农产品价格分析预测可视化系统设计与实现
  • 堆排序(数据结构)
  • 使用DMA方式控制串口
  • ModbusTCP转Profinet网关高低字节交换切换
  • OpenvSwitch VXLAN 隧道实验
  • GPT能复制人类的决策和直觉吗?
  • 权限设计种类【RBAC、ABAC】
  • C语言经典面试题目(十九)
  • VSCode 远程调试C++程序打开/dev/tty设备失败的问题记录
  • 亮相AWE 2024,日立中央空调打造定制空气新体验
  • KY61 放苹果(用Java实现)
  • 原型模式(Clone)——创建型模式
  • <.Net>VisaulStudio2022下用VB.net实现socket与汇川PLC进行通讯案例(Eazy521)
  • 漫途桥梁结构安全监测方案,护航桥梁安全!
  • LAMP架构部署--yum安装方式
  • 关于PXIE3U18槽背板原理拓扑关系
  • 网络安全等保测评指标一览表
  • C语言中函数的递归
  • 01|模型IO:输入提示、调用模型、解析输出
  • Android Studio实现内容丰富的安卓民宿酒店预订平台
  • SCI一区 | Matlab实现RIME-TCN-BiGRU-Attention霜冰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测
  • AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.03.10-2024.03.15
  • 路由器端口转发远程桌面控制:一电脑连接不同局域网的另一电脑
  • sparksession对象简介
  • 2、Java虚拟机之类的生命周期-连接(验证、准备、解析)
  • IPD集成产品开发:塑造企业未来竞争力的关键
  • 一个可商用私有化部署的基于JAVA的chat-gpt网站