代码随想录第21天|

class Solution {
public:vector<string> res;bool isVaild(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;}void backtracking(string &s,int startIndex,int pointNum){if(pointNum==3){//判断第四段是否符合要求if(isVaild(s,startIndex,s.size()-1))res.push_back(s);return;}for(int i=startIndex;i<s.size();i++){if(isVaild(s,startIndex,i)){s.insert(s.begin()+i+1,'.');backtracking(s,i+2,pointNum+1);s.erase(s.begin()+i+1);}else{break;//说明所有的都不合法了直接break}}}vector<string> restoreIpAddresses(string s) {backtracking(s,0,0);return res;}
};

思路:

递归遍历 pointNum=3为终止条件 isValue判断是不是符合要求闭区间得证

class Solution {
public:vector<vector<int>> res;vector<int> path;void backtracking(vector<int>& nums,int startIndex){if(startIndex==nums.size()){res.push_back(path);return;} res.push_back(path);for(int i=startIndex;i<nums.size();i++){path.push_back(nums[i]);backtracking(nums,i+1);path.pop_back();}}vector<vector<int>> subsets(vector<int>& nums) {backtracking(nums,0);return res;}
};
class Solution {
public:vector<vector<int>> res;vector<int> path;void backtracking(vector<int>& nums,int startIndex,vector<bool> is){if(startIndex==nums.size()){res.push_back(path);return;}res.push_back(path);for(int i=startIndex;i<nums.size();i++){//false代表是同一树层 现在属于前面的真子集一定被遍历过了 直接continueif(i>0&&nums[i]==nums[i-1]&&is[i-1]==false){continue;}path.push_back(nums[i]);is[i]=true;backtracking(nums,i+1,is);is[i]=false;path.pop_back();}}vector<vector<int>> subsetsWithDup(vector<int>& nums) {vector<bool> is(nums.size(),false);sort(nums.begin(),nums.end());backtracking(nums,0,is);return res;}
};

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

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

相关文章

华为仓颉语言入门(1):仓颉概述

解锁Python编程的无限可能&#xff1a;《奇妙的Python》带你漫游代码世界 仓颉编程语言是一种专门为应用开发设计的通用语言。与现代编程语言类似&#xff0c;它以高效、稳定和功能强大为核心&#xff0c;确保安全且易于上手。仓颉不仅适用于各种应用场景&#xff0c;还展示了…

使用Python免费将pdf转为docx

刚刚想将pdf转换为docx文档时&#xff0c;居然要收费 还好我学过编程&#xff0c;这不得露两手 将pdf 转换为 docx 文档 的操作步骤 我这里使用的是Python语言 &#xff08;1&#xff09;在终端上安装 pdf2docx 是一个 Python 库&#xff0c;它可以将 PDF 文件转换为 Word (…

中国电子学会202306青少年软件编程(Python)等级考试试卷(二级)真题

一、单选题(共25题,每题2分,共50分) 1、运行以下程序,如果通过键盘先后输入的数是1和3,输出的结果是?( ) a = int(input()) b = int(input()) if a < b:a = b print(a)A. 3 1 B. 1 3 C. 1 D. 3 2、运行以下程序,输出的结果是?( ) n = 10 s = 0 m = 1 while…

【JS】postMessage与MessageChannel

前言 postMessage 和 MessageChannel 都是用来实现跨文档、跨窗口或跨线程&#xff08;Web Worker&#xff09;的消息传递机制。 postMessage 可以在 iframe、同源或跨源窗口之间传递数据&#xff0c;也可以用于主线程与 Web Worker 之间的通信。 postMessage 是一种单向的…

计算机操作系统-进程控制面经

计算机操作系统-进程控制面经在线链接&#xff1a; 计算机操作系统-进程控制面经在线飞书链接&#x1f517;&#xff1a; (https://h03yz7idw7.feishu.cn/wiki/XtRIwWnEdiwgIHkX8Bbc98monpf)

IP包头分析

IP包头 选择自己的网卡&#xff0c;开始抓包 ping一个字节大点的数据&#xff0c;方便查看包 选择数据包&#xff0c;并过滤icmp协议 查看抓到的包&#xff0c;分析 IP包头范围&#xff1a;20-60 首部长度&#xff1a;定义包头的长度 总长度&#xff1a;表示当前数据的长度…

李宏毅2024生成式人工智能导论 中文镜像版指导与作业

这里是李宏毅老师2024年生成式人工智能导论的大陆镜像版&#xff0c;你可以在不翻墙的情况下完成课程的所有作业。 我替换了作业中需要&#x1fa9c;才能获取的API&#xff0c;并&#xff1a; 将其中的行为使用 OpenAI 库进行替换使用 ipywidgets 模拟 Colab 的交互以中文进行作…

若依等项目修改包名

点击这里 打开后如下图&#xff0c;根据需要自行操作即可&#xff0c;若依管理系统亲测修改包名后可以直接启动

unix中如何查询和修改进程的资源限制

一、前言 一个进程在运行时&#xff0c;会用到各种资源&#xff0c;比如cpu的使用时间、内存空间、文件等等。那么&#xff0c;一个进程能够占用多少资源呢&#xff1f;cpu使用的时间有多长&#xff1f;进程空间有多大&#xff1f;能够创建多少个文件&#xff1f;这个就是本文…

Kotlin 中的 `flatMap` 方法详解

在 Kotlin 中&#xff0c;flatMap 是一个非常强大的集合操作函数&#xff0c;它结合了 map 和 flatten 的功能。flatMap 能够将一个集合中的每个元素映射为另一个集合&#xff0c;然后将这些集合连接成一个单一的集合。在很多场景下&#xff0c;它比单独使用 map 和 flatten 更…

解锁数字转型新纪元:Vatee万腾平台,您的智能加速与策略智库

在数字经济时代的大潮中&#xff0c;企业的数字化转型已不再是选择题&#xff0c;而是必答题。面对这一挑战&#xff0c;Vatee万腾平台以其卓越的技术实力和前瞻性的战略视野&#xff0c;成为了众多企业加速数字化转型、实现智能化升级的得力助手和智囊团。 加速转型&#xff…

AirTest 基本操作范例和参数解释(一)

背景&#xff1a;基于目前团队中推广UIAutomation&#xff0c;采用了网易的UI自动化平台&#xff0c;平台兼容iOS、Android和WEB&#xff0c;是个跨平台的多库平台&#xff0c;利用poco和python进行脚本编写和开展自动化&#xff0c;但是在日常使用中有些同学对于一些关键字和参…

毕业设计选题:基于ssm+vue+uniapp的校园商铺系统小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

华为SMU02B1智能通信电源监控单元模块简介

华为SMU02B1是一款智能通信电源监控单元模块&#xff0c;专为5G嵌入式机框设计&#xff0c;它在通信电源管理领域扮演着重要角色。以下是对该产品的详细介绍&#xff1a; 一、产品概述 主要功能&#xff1a;华为SMU02B1能够监控和管理通信电源系统&#xff0c;提供站点监控功能…

需求3:照猫画虎

说起写需求&#xff0c;其实对于我这种小白而言&#xff0c;接到一个需求&#xff0c;最好的方式就是照猫画虎。 因为我从0到1写&#xff0c;以我现在这种水平&#xff0c;根本就不可能完成。所以照猫画虎&#xff0c;模仿着来写是最好的提升方法。 之前在聊天的时候&#xf…

查看VSFTPD配置的服务器路径和linux系统有哪些用户

要查看VSFTPD (Very Secure FTP Daemon)配置中定义的服务器路径,需要检查VSFTPD的配置文件。这通常可以在配置文件中找到并有不同的选项来设置路径。 这里有几个方法可以查看配置的服务器路径: 1. 检查主配置文件 VSFTPD的默认配置文件通常位于`/etc/vsftpd.conf`。可以使用…

Windows11家庭版修改用户密码策略为永不过期。

今天有个朋友找到我说&#xff0c;他的电脑密码老是过期然后需要修改&#xff0c;让我帮忙改一下密码策略&#xff0c;改为永不过期。 下面就来操作一下吧。 这里有个小小的坑&#xff0c;就是win11的家庭版是没有 gpedit.msc的&#xff0c;也就不能直接cmd打开本地策略便器&…

day20JS-axios数据通信

1. 什么是axios axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端&#xff0c;简单的理解就是ajax的封装&#xff0c;只不过它是Promise的实现版本。 特性&#xff1a; 从浏览器中创建 XMLHttpRequests从 node.js 创建 http 请求支持 Promise API拦截请求和响应转…

Linux下进程间的通信--共享内存

共享内存概述&#xff1a; 共享内存是进程间通信的一种方式&#xff0c;它允许两个或多个进程共享一个给定的存储区。共享内存是最快的一种IPC形式&#xff0c;因为它允许进程直接对内存进行读写操作&#xff0c;而不需要数据在进程之间复制。 共享内存是进程间通信&#xff…

Linux 中的 Screen 命令详解

目录 前言1. 什么是 Screen 命令2. Screen 命令的主要功能3. Screen 命令的安装4. Screen 的基础使用4.1 启动一个新的 Screen 会话4.2 恢复一个断开的 Screen 会话4.3 退出一个 Screen 会话 5. Screen 命令的常用参数5.1 -S&#xff1a;指定会话名称5.2 -r&#xff1a;恢复会话…