首页 > 其他分享 >day27

day27

时间:2023-02-14 22:57:39浏览次数:40  
标签:return nums int res day27 startIndex new

1、leetcode93 复原IP地址

class Solution {
    List<String> res = new ArrayList<>();

    public boolean isValid(String s, int start, int end) {
        if(start > end) {
            return false;
        }
        if(s.charAt(start) == '0' && start != end) {
            return false;
        }
        int num=0;
        for(int i=start; i<=end; i++) {
            if (s.charAt(i) > '9' || s.charAt(i) < '0') {
                return false;
            }
            num = num * 10 + (s.charAt(i) - '0'); 
            if( num > 255) {
                return false;
            }
        }
        return true;
    }

    public void backTracking(String s, int startIndex, int pointNum) {
        if(pointNum == 3) {
            if (isValid(s,startIndex,s.length()-1)) {
                res.add(s);
            }
            return;
        }

        for(int i=startIndex; i<s.length(); i++) {
            if (isValid(s, startIndex, i)) {
                s = s.substring(0, i + 1) + "." + s.substring(i + 1);    //在str的后⾯插⼊⼀个逗点
                pointNum++;
                backTracking(s, i + 2, pointNum);// 插⼊逗点之后下⼀个⼦串的起始位置为i+2
                pointNum--;// 回溯
                s = s.substring(0, i + 1) + s.substring(i + 2);// 回溯删掉逗点
            } else {
                break;
            }
        }
    }

    public List<String> restoreIpAddresses(String s) {
        if (s.length() > 12) return res; // 算是剪枝了
        backTracking(s, 0, 0);
        return res;
    }
}

2、leetcode78 子集

class Solution {
    List<Integer> path = new LinkedList<Integer>();
    List<List<Integer>> res = new ArrayList<>();

    public void backTracking(int[] nums, int startIndex) {
        res.add(new ArrayList<>(path));
        if(startIndex >= nums.length) {
            return;
        }
        for(int i=startIndex; i<nums.length; i++) {
            path.add(nums[i]);
            backTracking(nums, i+1);
            path.remove(path.size()-1);
        }
    }

    public List<List<Integer>> subsets(int[] nums) {
        backTracking(nums, 0);
        return res;
    }
}

3、leetcode90 子集Ⅱ

class Solution {
    List<Integer> path = new LinkedList<Integer>();
    List<List<Integer>> res = new ArrayList<>();

    public void backTracking(int[] nums, int startIndex) {
        res.add(new ArrayList<>(path));
        if(startIndex >= nums.length) {
            return;
        }

        for(int i=startIndex; i<nums.length; i++) {
            if(i > startIndex && nums[i] == nums[i - 1]) {
                continue;
            }
            path.add(nums[i]);
            backTracking(nums, i+1);
            path.remove(path.size()-1);
        }
    }

    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        backTracking(nums, 0);
        return res;
    }
}

标签:return,nums,int,res,day27,startIndex,new
From: https://www.cnblogs.com/hzj-bolg/p/17121132.html

相关文章

  • 剑指offer——Day27 栈与队列(困难)
    Day272023.2.9栈&队列(困难)剑指Offer59-Ⅰ.滑动窗口的最大值自己实现这种滑动窗口的题直接用双指针来做了,做出来了,正确性是对的,但是时间太长了,超出时间限制了,先把......
  • 【算法训练营day27】LeetCode39. 组合总和 LeetCode40. 组合总和II LeetCode131. 分割
    LeetCode39.组合总和题目链接:39.组合总和独上高楼,望尽天涯题目不难,注意start_index参数的使用。classSolution{private:vector<vector<int>>result;ve......
  • day27-单元测试/日志
    1.管理系统与服务器集成1.1准备工作【应用】需求对之前写过的信息管理系统进行改进,实现可以通过浏览器进行访问的功能准备工作将资料中的管理系统代码拷贝到当......
  • javascript-代码随想录训练营day27
    39.组合总和题目链接:https://leetcode.cn/problems/combination-sum/题目描述:给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中......
  • Day27:异常详解
    异常1.1异常概述异常(Exception)指程序运行中出现的不正常情况:文件找不到、网络异常、非法参数等等。我们通过代码来了解一下:publicclassDemo{publicstaticvoi......
  • day27-过滤器Filter02
    Filter过滤器025.Filter过滤器生命周期Filter生命周期图解验证-Tomcat来创建Filter实例,只会创建一个实例packagecom.filter;importjavax.servlet.*;importj......
  • LeetCode刷题记录.Day27
    逆波兰表达式求值classSolution{public:intevalRPN(vector<string>&tokens){stack<longlong>st;for(inti=0;i<tokens.size();i++){......
  • day27
    【102二叉树的层序遍历】/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*T......
  • 代码随想录Day27
    LeetCode112.路径总和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节......
  • day27 -选择器完
    层次选择器选择全部*p{}所有该属性标签都会改变样式 1p{2background:#15f50c;3} 后代选择器选择某一项的后代所有的该元素都改变样式 1后代选......