首页 > 其他分享 >偷一下懒,复原ip坐半天给整怕了, 发现后两题10分钟一起AC,乐

偷一下懒,复原ip坐半天给整怕了, 发现后两题10分钟一起AC,乐

时间:2023-01-10 22:55:06浏览次数:28  
标签:10 AC nums int length startIndex 两题 new sb

93. 复原 IP 地址

 List<String> result = new ArrayList<String>();
    StringBuilder sb = new StringBuilder();


    /**
     * <A href="https://leetcode.cn/problems/restore-ip-addresses/"> 93.复原IP地址 </A>
     */
    public void backTracing(String s, int startIndex, int dotNum) {
        if (dotNum == 4 && sb.length() < s.length() + 4) {
            return;
        }
        if (dotNum == 4 && sb.length() == s.length() + 4) {
            result.add(sb.toString());
            return;
        }
        for (int i = startIndex; i < startIndex + 3 && i < s.length() && isValid(s, startIndex, i + 1); i++) {
            sb.append(s.substring(startIndex, i + 1));
            sb.append('.');
            dotNum++;
            backTracing(s, i + 1, dotNum);
            dotNum--;
            sb.delete(sb.length() - 1, sb.length()); // 移除点
            sb.delete(sb.length() - (i + 1 - startIndex), sb.length()); // 移数字
        }
    }


    public boolean isValid(String s, int startingIndex, int endIndex) {
        if (endIndex - startingIndex != 1 && s.charAt(startingIndex) == '0') {
            return false;
        }
        String d = s.substring(startingIndex, endIndex);
        return Integer.parseInt(d) >= 0 && Integer.parseInt(d) <= 255;
    }

这两题就很像,简单的我都不敢相信,我...

78. 子集

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

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

    public void backTracing(int[] nums, int startIndex) {
        res.add(new ArrayList<>(path));
        for (int i = startIndex; i < nums.length; i++) {
            path.add(nums[i]);
            backTracing(nums, i + 1);
            path.removeLast();
        }
    }

90. 子集 II

LinkedList<Integer> path = new LinkedList<>();
    List<List<Integer>> res = new ArrayList<>();
    
    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        backTracing2(nums, 0);
        return res;
    }

    public void backTracing2(int[] nums, int startIndex) {
        res.add(new ArrayList<>(path));

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

标签:10,AC,nums,int,length,startIndex,两题,new,sb
From: https://www.cnblogs.com/Chain-Tian/p/17041617.html

相关文章

  • 1032. Find a Multiple
    1032.FindaMultiplehttps://acm.timus.ru/problem.aspx?space=1&num=1032 思路对于n个数a[1]...a[n]首先计算累加和s[1]...s[n]s[i]=a[1]+a[2]+.........
  • C语言学生成绩管理系统[2023-01-10]
    C语言学生成绩管理系统[2023-01-10]学生成绩管理系统建立学生结构体类型,包括:学号(学号11位)、姓名、3门课成绩及总分。采用链表来存放学生信息,从键盘录入10个同学的信息(总......
  • 2023-01-10 python基础2
    迭代器第一次接触,类似于for循环个人感觉(虽然写了这么个例子,但是不知道迭代器用在哪里,等以后写写代码看看)class迭代器:def__init__(self,num):self.num......
  • ERROR 1067 (42000): Invalid default value for 'xxx字段'
    报错版本:mysql-5.7.351、报错完整提示信息;ERROR1067(42000):Invaliddefaultvaluefor'LOCK_TIME_'2、原因:使用source命令迁移activiti表数据sql的时候,其中act......
  • 闲话 23.1.10
    闲话新年了……新年的军队打算学习小孩召开法(为未来的模拟赛的不可做题准备着(今日是啥都没干日!ETT怎么学?\((\max,+)\)卷积(?)虽然但是,现在我们不考虑一般......
  • FILIP: FINE-GRAINED INTERACTIVE LANGUAGEIMAGE PRE-TRAINING论文阅读笔记
    摘要目前的图像文本预训练模型通常通过每个模态全局特征的相似性来建模跨模态的交互,然而这会导致缺乏足够的信息;或者通过在视觉/文本token上使用跨模态注意力/自注意力来......
  • Micropython 呼吸灯,使用 machine.pwm
    学习ESP32micropython,使用网路课件最方便:三、PWM呼吸灯利用PWM的调制作用,制作呼吸灯,pwm()没有解释的很清楚,再来一个连接PWM(脉宽调制)frommachineimportPin,P......
  • 2022.1.10
    ABC284F.ABCBAC直接枚举\(i\)然后\(hash\)处理即可,记得不要使用自然溢出。ABC284G.OnlyOne这题有一个非常关键的性质:每一个点的贡献都是等价的。因此我们只要算出......
  • oracle merge into与sqlserver merge into 比较
    mergeinto:在两个表之间,根据与源表联接的结果,对目标表执行插入、更新或删除操作。Oracle在9i引入了mergeinto命令,SQLServer2008也引入mergeinto。不多说了,实例对比一......
  • 下载Oracle_BI_DW_AC_10.1.3.4.1_for_MicrosoftWindows_and_InformaticaPowerCenter_a
    oracle官方下载地址:​​https://edelivery.oracle.com/​​1.注册或登录,必须要注册账户,很简单,注册一个,很多软件可以下载,都很有用。2.注册登录后,选择中国:china-CN,对下......