DAY28| 93. 复原IP地址 ,79.子集 ,90.子集II

2024-04-17 08:28
文章标签 ip 复原 地址 ii 子集 93 day28 79 90

本文主要是介绍DAY28| 93. 复原IP地址 ,79.子集 ,90.子集II,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 93.复原IP地址
    • 78.子集
    • 90.子集II

93.复原IP地址

文字讲解:复原IP地址

视频讲解:复原IP地址

**状态:**此题调试了几次ok,与昨天的分割回文子串相比,就是在判断终止条件处需要处理;

思路:

代码:

class Solution {List<String> result = new ArrayList<>();LinkedList<String> tempList = new LinkedList<>();public List<String> restoreIpAddresses(String s) {backTracking(0, s);return result;}public void backTracking(Integer startIndex, String s) {if (tempList.size() == 3) {if (validIpParam(s.substring(startIndex, s.length()))) {tempList.offer(s.substring(startIndex, s.length()));result.add(getIp());tempList.pollLast();}return;}for (int i = startIndex; i < s.length() && tempList.size()<=4; i++) {if (validIpParam(s.substring(startIndex, i+1))) {tempList.offer(s.substring(startIndex, i+1));} else {continue;}backTracking(i+1, s);tempList.pollLast();}}public boolean validIpParam(String s) {if (s == null || s.length()==0) {return false;}if (s.length()>=2 && s.charAt(0)=='0') {return false;}if (s.length()>3) {return false;}Integer num = Integer.valueOf(s);if (num < 0 || num > 255) {return false;}return true;}public String getIp() {StringBuilder resultStr = new StringBuilder();for (int i = 0; i < tempList.size(); i++) {if (i==tempList.size()-1) {resultStr.append(tempList.get(i));} else {resultStr.append(tempList.get(i)).append(".");}}return resultStr.toString();}
}

78.子集

文字讲解:子集

视频讲解:子集

状态:这一题的关键在于收集元素的位置,理解了回溯算法中的树形结构和理论知识,这题可以想到在for循环中收集元素即可

思路:

代码:

class Solution {List<List<Integer>> result = new ArrayList<>();LinkedList<Integer> tempList = new LinkedList<>();public List<List<Integer>> subsets(int[] nums) {backTracking(nums, 0);result.add(new ArrayList<>());return result;}public void backTracking(int[] nums, int index) {if (index>=nums.length) {return;}for (int i = index; i < nums.length; i++) {tempList.add(nums[i]);//收集元素result.add(new ArrayList<>(tempList));backTracking(nums, i+1);tempList.pollLast();}}
}

90.子集II

文字讲解:子集II

视频讲解:子集II

状态:这题秒了

思路:

代码:

class Solution {List<List<Integer>> result = new ArrayList<>();LinkedList<Integer> tempList = new LinkedList<>();public List<List<Integer>> subsetsWithDup(int[] nums) {result.add(tempList);//对数组先进行排序Arrays.sort(nums);backTracking(nums, 0);return result;}public void backTracking(int[] nums, int startIndex) {if (startIndex>=nums.length) {return;}for (int i = startIndex; i < nums.length; i++) {if (i>startIndex&&nums[i]==nums[i-1]) {continue;}tempList.offer(nums[i]);result.add(new ArrayList<>(tempList));backTracking(nums, i+1);tempList.pollLast();}}
}

这篇关于DAY28| 93. 复原IP地址 ,79.子集 ,90.子集II的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911288

相关文章

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

webapp地址

F:\LSP\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

从0到1,AI我来了- (7)AI应用-ComfyUI-II(进阶)

上篇comfyUI 入门 ,了解了TA是个啥,这篇,我们通过ComfyUI 及其相关Lora 模型,生成一些更惊艳的图片。这篇主要了解这些内容:         1、哪里获取模型?         2、实践如何画一个美女?         3、附录:               1)相关SD(稳定扩散模型的组成部分)               2)模型放置目录(重要)

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。