leetcode打卡-回溯I

news2024/9/22 21:34:51

77. 组合

leetcode题目链接:https://leetcode.cn/problems/combinations/

leetcode AC记录:

代码如下:

public List<List<Integer>> combine(int n, int k) {
        List<List<Integer>> res = new ArrayList<>(16);
        List<Integer> path = new ArrayList<>(16);
        hs(res, path, 1, k,n);
        return res;
    }

    public void hs(List<List<Integer>> res, List<Integer> path, int begin, int k, int n) {
        if(path.size() == k) {
            res.add(new ArrayList<>(path));
            return;
        }

        for(int i = begin; i <= n;i++) {
            path.add(i);
            hs(res, path, i+1, k, n);
            path.remove(path.size()-1);
        }
    }

216.组合总和III

leetcode题目链接:https://leetcode.cn/problems/combination-sum-iii

leetcode AC记录:

代码如下:

 public List<List<Integer>> combinationSum3(int k, int n) {
        List<List<Integer>> res = new ArrayList<>(16);
        List<Integer> path = new ArrayList<>(16);
        combain(res, path, 0, k, n, 1);
        return res;
    }

    public void combain(List<List<Integer>> res, List<Integer> path, int sum, int k, int n, int begin) {
        if(sum == n && path.size() == k) {
            res.add(new ArrayList<>(path));
            return;
        }

        for(int i = begin;i <= 9;i++) {
            path.add(i);
            combain(res, path, sum+i, k, n, i + 1);
            path.remove(path.size()-1);
        }
    }

17.电话号码的字母组合

leetcode题目链接:https://leetcode.cn/problems/letter-combinations-of-a-phone-number/

leetcode AC记录:

代码如下:

class Solution {
    public List<String> letterCombinations(String digits) {
        if(digits == null || digits.length() == 0) {
            return new ArrayList<>(0);
        }
        List<String> res = new ArrayList<>(16);
        String path = "";
        hs(res, path, 0, digits.length(), 0, digits);
        return res;
    }

    public void hs(List<String> res, String path, int curSize, int size, int beginNum, String digits) {
        if(curSize == size) {
            res.add(path);
            return;
        }

        char c = digits.charAt(beginNum);
        char[] str = getArray(c);
        for(int i = 0;i < str.length;i++) {
            hs(res, path + str[i], curSize + 1, size, beginNum + 1, digits);
        }
    }

    public char[] getArray(char c) {
        switch(c) {
            case '2':
                return "abc".toCharArray();
            case '3':
                return "def".toCharArray();
            case '4':
                return "ghi".toCharArray();
            case '5':
                return "jkl".toCharArray();
            case '6':
                return "mno".toCharArray();
            case '7':
                return "pqrs".toCharArray();
            case '8':
                return "tuv".toCharArray();
            case '9':
                return "wxyz".toCharArray();
        }
        return null;
    }
}

 

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

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

相关文章

操作系统期末复习

操作系统概论 文章目录操作系统概论操作系统的目标&#xff1a;基本特征:主要功能发展操作系统的运行机制时钟管理中断机制&#xff1a;指令程序处理机状态原语&#xff1a;由若干指令组成的程序段&#xff0c;完成特定功能系统数据结构系统调用体系结构进程--资源分配和调度的…

[黑马程序员SSM框架教程] Spring-22 注解开发依赖注入

1.自动装配是基于暴力反射对私有属性进行装配的&#xff0c;所以不需要setter方法。打破了IOC提供对象&#xff0c;我提供入口的思想。现在不用提供入口也能实现。 2. Qualifier必须依赖注解Autowired&#xff0c;当自动装配的接口类型有多个实现类时使用&#xff0c; 3. Autow…

Linux基础命令-du查看文件的大小

文章目录 du 命令介绍 语法格式 基本参数 参考实例 1&#xff09;以人类可读形式显示指定的文件大小 2&#xff09;显示当前目录下所有文件大小 3&#xff09;只显示目录的大小 4&#xff09;显示根下哪个目录文件最大 5&#xff09;显示所有文件的大小 6&#xff0…

layui框架学习(11:徽章)

应用程序有新增内容、未读消息时&#xff0c;会在按钮或菜单中添加红点或带数字的点状或方状图形&#xff0c;用户看到就知道有新内容&#xff0c;如下图所示QQ邮箱的截图&#xff0c;会通过红色圆点或带NEW的方框提醒用户有新内容可以查看。   CSDN用户如果有新消息&#x…

产品经理有必要考个 PMP吗?(含PMP资料)

现在基本上做产品的都有一个PMP证件&#xff0c;从结果导向来说&#xff0c;不对口不会有这么大范围的人来考&#xff0c;但是需要因地制宜&#xff0c;在公司内部里&#xff0c;标准程序并不流畅&#xff0c;产品和项目并不规范&#xff0c;关系错综复杂。 而产品经理的职能又…

【Java学习】初识Java

JavaSEJava初识1. Java简介2.Java环境的安装与配置3. 开发第一个Java程序Java初识 学前疑问&#xff1a;&#xff08;带着疑问去学习&#xff0c;在学习中自行探索答案&#xff09; Java是什么&#xff1f;能做什么&#xff1f;发展前景如何&#xff1f;需要学习哪些内容&…

腾讯一面—Android 系统启动流程详解

正文AMS 是 Android 中最核心的服务之一&#xff0c;主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作&#xff0c;其职责与操作系统中的进程管理和调度模块相类似&#xff0c;它本身也是一个 Binder 的实现类&#xff0c;应用进程能通过 Binder 机制调用…

ESPRESSIF ESP32 开发环境搭建

1.下载Espressif-IDE并安装&#xff0c;安装的时候直接下一步就行&#xff0c;下载地址为 IDE下载地址 2.新建项目 1&#xff0c;首先磁盘新建文件夹&#xff0c;用来保存项目 2&#xff0c;File ->New ->乐鑫IDF项目-> 工程名字test->保存目录就是自己建立的哪个…

EasyRecovery16MAC苹果版本Photo最新版数据恢复软件

无论是在工作学习中&#xff0c;还是在生活中&#xff0c;Word、Excle等办公软件都是大家很常用的。我们在使用电脑的过程中&#xff0c;有时会因自己的误删或电脑故障&#xff0c;从而导致我们所写的文档丢失了。出现这样的大家不要着急&#xff0c;今天小编就给大家推荐一款可…

nacos 单机集群搭建及常用生产环境配置 | Spring Cloud 3

一、Nacos 概览 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称&#xff0c;一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮…

《程序员思维修炼》速读笔记

文章目录书籍信息概览绪论从新手到专家的历程认识大脑利用右脑调试大脑主动学习积累经验控制注意力超越专家图解书籍信息 书名&#xff1a;《程序员思维修炼&#xff08;修订版&#xff09;》 作者&#xff1a;[美] Andy Hunt 概览 绪论 再提“实用”关注情境所有人都关注这…

kafka使用入门案例与踩坑记录

每次用到kafka时都会出现各种奇怪的问题&#xff0c;综合实践&#xff0c;下面汇总下主要操作步骤&#xff1a; Docker镜像形式启动 zookeeper启动 docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeperkafka启动 docker run --name kafka01 -p 9092:909…

Apk转Aab(Android-App-Bundle)

这篇文章是参考Apk转Aab(Android-App-Bundle)_YoungBillsohu的博客-CSDN博客 基本照着这个大佬的步骤来就行&#xff0c;但是要注意的是apkTool最好是下新的&#xff0c;否则&#xff0c;会出现说一堆无语的错误&#xff0c;然后导致AAPT2关联资源的时候报错 类似这样的&#…

Java自定义生成二维码(兼容你所有的需求)

1、概述作为Java开发人员&#xff0c;说到生成二维码就会想到zxing开源二维码图像处理库&#xff0c;不可否认的是zxing确实很强大&#xff0c;但是实际需求中会遇到各种各样的需求是zxing满足不了的&#xff0c;于是就有了想法自己扩展zxing满足历史遇到的各种需求&#xff0c…

STC单片机启动看门狗定时器介绍和使用

STC单片机启动看门狗定时器介绍 ✨这里以STC8系列为例。 📑看门狗复位(WDT_CONTR) WDT_FLAG:看门狗溢出标志 看门狗发生溢出时,硬件自动将此位置 1,需要软件清零。EN_WDT:看门狗使能位 0:对单片机无影响 1:启动看门狗定时器。 注意:看门狗定时器可使用软件方式启动,…

JSP网上书店系统用myeclipse定制开发mysql数据库B/S模式java编程计算机网页

一、源码特点 JSP 网上书店系统 是一套完善的系统源码&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。研究的基本内容是基于网上书店系 统&#xff0c;使用JSP作为页面开发工具。Web服务的运…

【机器学习】集成学习投票法:投票回归器(VotingRegressor) 投票分类器(VotingClassifier)

前言 投票回归器和投票分类器都属于集成学习。在【机器学习】集成学习基础概念介绍中有提到过&#xff0c;集成学习的结合策略包括&#xff1a; 平均法、投票法和学习法。sklearn.ensemble库中的Voting Classifier和Voting Regressor&#xff0c;它们分别实现了对回归任务和分…

JUC 之 Synchronized 与 锁升级

—— 对象内存布局 和 对象头 对象构成布局 1. 对象头 对象标记 Mark Word 哈希码GC 标记 & 次数 GC 年龄 采用 4 位 bit 存储&#xff0c;最大为 15&#xff08;1111&#xff09;&#xff0c;所以 MaxTenutingThreshold 参数&#xff08;分代年龄&#xff09;的参数默…

C++回顾(三)—— 函数

3.1 内联函数 3.1.1 内联函数的定义 &#xff08;1&#xff09;内联函数的作用 作用&#xff1a;不是在调用时发生控制转移&#xff0c;而是在编译时将函数体嵌入在每一个调用处&#xff0c;适用于功能简单&#xff0c;规模较小又使用频繁的函数。递归函数无法内联处理&…

Java-重排序,happens-before 和 as-if-serial 语义

目录1. 如何解决重排序带来的问题2. happens-before1. 如何解决重排序带来的问题 对于编译器&#xff0c;JMM 的编译器重排序规则会禁止特定类型的编译器重排序。对于处理器重排序&#xff0c;JMM 的处理器重排序规则会要求编译器在生成指令序列时&#xff0c;插入特定类型的内…