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

陕西做网站的公司电话行业网站网址

陕西做网站的公司电话,行业网站网址,网站建设从入门到精通 网盘,企业服务咨询93.复原IP地址 本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了 题目链接/文章讲解:代码随想录 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔…

93.复原IP地址  

本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了 

题目链接/文章讲解:代码随想录

视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili

Python:

class Solution:def __init__(self):self.result = []self.path = []def isvalid(self, s, start, end):if start>end: return Falseif s[start]=="0" and start!=end: return Falsereturn 0<=int(s[start:end+1])<=255def backtracking(self, s, start_index):if len(self.path)==4 and start_index==len(s):addr = ".".join(self.path)self.result.append(addr)returnif len(self.path) > 4: returnfor i in range(start_index, min(start_index+3, len(s))):if self.isvalid(s, start_index, i):self.path.append(s[start_index:i+1])               self.backtracking(s, i+1)self.path.pop()returndef restoreIpAddresses(self, s: str) -> List[str]:if len(s)<4 or len(s)>12: return []self.backtracking(s, 0)return self.result

C++:

C++版本写成直接在string里insert更简洁一些,C++没有类似python string.join的写法。

class Solution {
public: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, '.');backtracking(s, i + 2, pointNum+1);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;}vector<string> restoreIpAddresses(string s) {result.clear();if (s.size()<4 || s.size()>12) return result;backtracking(s, 0, 0);return result;}
};

78.子集  

子集问题,就是收集树形结构中,每一个节点的结果。 整体代码其实和 回溯模板都是差不多的。 

题目链接/文章讲解:代码随想录

视频讲解:回溯算法解决子集问题,树上节点都是目标集和! | LeetCode:78.子集_哔哩哔哩_bilibili

本题比较简单

Python:

class Solution:def __init__(self):self.result = []self.path = []def backtracking(self, nums, start_index):self.result.append(self.path[:])for i in range(start_index, len(nums)):self.path.append(nums[i])self.backtracking(nums, i+1)self.path.pop()returndef subsets(self, nums: List[int]) -> List[List[int]]:self.backtracking(nums, 0)return self.result

C++:

class Solution {
public: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();}return;}vector<vector<int>> subsets(vector<int>& nums) {backtracking(nums, 0);return result;    }
};

90.子集II 

大家之前做了 40.组合总和II 和 78.子集 ,本题就是这两道题目的结合,建议自己独立做一做,本题涉及的知识,之前都讲过,没有新内容。 

题目链接/文章讲解:代码随想录

视频讲解:回溯算法解决子集问题,如何去重?| LeetCode:90.子集II_哔哩哔哩_bilibili

和上一题类似,区别在于去重,去重部分和40.组合总和II 类似。

Python:

class Solution:def __init__(self):self.result = []self.path = []def backtracking(self, nums, start_index):self.result.append(self.path[:])        for i in range(start_index, len(nums)):if i>start_index and nums[i]==nums[i-1]: continue # 去重self.path.append(nums[i])self.backtracking(nums, i+1)self.path.pop()returndef subsetsWithDup(self, nums: List[int]) -> List[List[int]]:nums.sort()self.backtracking(nums, 0)return self.result

C++:

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

http://www.ds6.com.cn/news/105804.html

相关文章:

  • 网站登录账号密码保存在哪里seo推广怎么样
  • 合肥做一个网站要多少钱网站推广在线
  • 哪个网站适合 做红本抵押班级优化大师手机版下载(免费)
  • 大连有做途家网站吗百度联盟怎么加入
  • 承德市建设局网站荆州百度推广
  • 电子商务网站建设与维护意味着什么口碑营销什么意思
  • 提供网站建设公seo网络营销的技术
  • 做网站怎么维护2021全国大学生营销大赛
  • 网站tdk优化文档惠州seo优化服务
  • 福州城乡建设委员会网站网站的优化和推广方案
  • 做国外进口衣服的网站广州网站推广服务
  • 广州网页设计师工资一般多少seo全网优化指南
  • 湖南响应式网站哪家好如何建立网站服务器
  • 做素材网站如何赚钱影视后期培训班一般要多少钱
  • 做网站哪家好维普网论文收录查询
  • 专业vi设计哪家好张掖seo
  • 沈阳网站制作的公司郑州seo关键词
  • 网站版面的图文是怎么做的谷歌seo运营
  • yole市场调研公司石家庄seo关键词排名
  • 如何做网站搭建福州seo技术培训
  • 外国人的做视频网站武汉百度搜索优化
  • 怎么做电商赚钱无锡百度seo优化
  • 如何提升网站用户体验西安百度竞价推广
  • 富阳做网站洛洛科技中央人民政府网
  • 公司的网站备案最新国际新闻大事件
  • wordpress 菜单 分隔网站优化建设
  • 深圳门户网站建设兰州网络推广的平台
  • 网站网站地图怎么做seo快速排名软件网站
  • 昆明做凡科网站seo推广灰色词
  • wordpress购物网站手机搜索引擎优化原理