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

【代码随想录算法训练营第37期 第二十八天 | LeetCode93.复原IP地址、78.子集、90.子集II】

代码随想录算法训练营第37期 第二十八天 | LeetCode93.复原IP地址、78.子集、90.子集II


一、93.复原IP地址

解题代码C++:

class Solution {
private:vector<string> result;void backtracking(string& s, int startIndex, int pointNum){if(pointNum == 3){if(isValid(s, startIndex, s.size() - 1))result.push_back(s);return;}for(int i = startIndex; i < s.size(); i ++){if(isValid(s, startIndex, i)){s.insert(s.begin() + i + 1, '.');pointNum ++;backtracking(s, i + 2, pointNum);pointNum --;s.erase(s.begin() + i + 1);}else break;}}bool isValid(const string& s, int start, int end){if(start > end) return false;if(s[start] == '0' && start != end) return false;int num = 0;for(int i = start; i <= end; i ++){if(s[i] > '9' || s[i] < '0')return false;num = num * 10 + (s[i] - '0');if(num > 255)return false;}return true;}public:vector<string> restoreIpAddresses(string s) {result.clear();if(s.size() < 4 || s.size() > 12) return result;backtracking(s, 0, 0);return result;}
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html



二、78.子集

解题代码C++:

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;}
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0078.%E5%AD%90%E9%9B%86.html



三、90.子集II

解题代码C++:

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startIndex, vector<bool>& used){result.push_back(path);for(int i = startIndex; i < nums.size(); i ++){if(i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false)continue;path.push_back(nums[i]);used[i] = true;backtracking(nums, i + 1, used);used[i] = false;path.pop_back();}}public:vector<vector<int>> subsetsWithDup(vector<int>& nums) {result.clear();path.clear();vector<bool> used(nums.size(), false);sort(nums.begin(), nums.end());backtracking(nums, 0, used);return result;}
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0090.%E5%AD%90%E9%9B%86II.html

相关文章:

  • 算法简单笔记3
  • C语言:(动态内存管理)
  • 攻防世界maze做法(迷宫题)
  • appium元素定位工具_uiautomatorviewer.bat
  • WiFi模块ESP32手机远程控制方法
  • docker学习--最详细的docker run 各子命令解释与应用
  • C# :IQueryable IEnumerable
  • Prism 入门04,导航功能
  • 【STL源码剖析】deque 的使用
  • Docker 私有仓库部署和管理
  • 构建一个java项目,对于安全方面,需要哪些业务模块
  • axios学习
  • Java web应用性能分析之【java进程问题分析定位】
  • 网线水晶头为什么要按标准线序打
  • 什么是Swagger UI ,swagger ui 的authorization怎么获取?
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • C# 免费离线人脸识别 2.0 Demo
  • CSS实用技巧
  • iOS 系统授权开发
  • JavaScript-Array类型
  • Laravel核心解读--Facades
  • mongodb--安装和初步使用教程
  • Next.js之基础概念(二)
  • PHP CLI应用的调试原理
  • Puppeteer:浏览器控制器
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Python实现BT种子转化为磁力链接【实战】
  • Redux 中间件分析
  • spring boot 整合mybatis 无法输出sql的问题
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Vue全家桶实现一个Web App
  • 测试开发系类之接口自动化测试
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 微服务核心架构梳理
  • 字符串匹配基础上
  • 自动记录MySQL慢查询快照脚本
  • ​数据链路层——流量控制可靠传输机制 ​
  • ​用户画像从0到100的构建思路
  • # 数仓建模:如何构建主题宽表模型?
  • #QT(TCP网络编程-服务端)
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2)leetcode 234.回文链表 141.环形链表
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)丶RabbitMQ的六大核心
  • (四) Graphivz 颜色选择
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)可以带来幸福的一本书
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .cn根服务器被攻击之后
  • .CSS-hover 的解释