代码随想录35期Day27-Java(day26休息)

Day27题目

LeetCode39组合总和

核心思想:经典回溯

class Solution {int sum = 0;//记录当前元素List<Integer> path = new ArrayList<>();// 记录返回值List<List<Integer>> res = new ArrayList<>();public List<List<Integer>> combinationSum(int[] candidates, int target) {help(candidates,0,target);return res;}public void help(int[] candidates,int start,int target){// 返回条件是sum 大于target,这样就不能再有和等于target,因为元素全部是正数if(sum > target) return;for(int i = start ; i < candidates.length; i ++){sum = sum + candidates[i];path.add(candidates[i]);if(sum == target){res.add(new ArrayList(path));}else{help(candidates,i,target);}// 回溯sum = sum-candidates[i];path.removeLast();}}
}

LeetCode40组合总和Ⅱ:多了去重

核心思想:主要是去重部分:去重有好几种方法:使用Boolean数组,set,排序后比较是否和前一个元素相同

class Solution {List<Integer> path = new ArrayList<>();List<List<Integer>> res = new ArrayList<>();public List<List<Integer>> combinationSum2(int[] candidates, int target) {// 不使用used 数组Arrays.sort(candidates);help(candidates,target,0,0);return res;}public void help(int[] candidates, int target, int start, int sum){if(sum > target) return;if(sum == target) {res.add(new ArrayList(path));}// 这里做了剪枝  4ms->2msfor(int i = start; i < candidates.length && sum+candidates[i] <= target ;i ++){// 这里是在层部分判断是否是和前一个相同。 i>start 则表示是同一层if(i > start && candidates[i-1] == candidates[i]) continue;path.add(candidates[i]);help(candidates,target,i+1,sum+candidates[i]);path.removeLast();}}
}

LeetCode131.分割回文串

核心思想:使用start维护一个字符串的起始

class Solution {List<String> path = new ArrayList<>();List<List<String>> res = new ArrayList<>();public List<List<String>> partition(String s) {help(s,0);return res;}public void help(String s,int start){// 左闭右开if(start >= s.length()){res.add(new ArrayList(path));return;}// 从start 开始,可以切 1 -> s.length-start-1 种截取的方法。for(int i = start+1; i <= s.length();  i++ ){if(isReverse(s,start,i)){// 是回文串之后进行进一步遍历path.add(s.substring(start,i));help(s,i);path.removeLast();}}}public boolean isReverse(String s,int start,int end){for (int i = start, j = end-1; i < j; i++, j--) {if (s.charAt(i) != s.charAt(j)) {return false;}}return true;}
}

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

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

相关文章

哈夫曼编码---一种无损数据压缩算法

哈夫曼编码是一种无损数据压缩算法&#xff0c;该算法在数据压缩&#xff0c;存储和网络传输等领域广泛引用&#xff0c;对互联网的发展也产生了深远的影响。 大家熟知的数据无损压缩软件&#xff0c;如WinRAR&#xff0c;gzip&#xff0c;bzip&#xff0c;lzw&#xff0c;7-z…

mac M2 配置item2 rzsz

背景 apple m 系列处理器安装的 homebrew 跟 intel 处理器略有不同&#xff0c;其中安装目录的区别&#xff1a; m 系列处理器安装目录为 /usr/local/bin/homebrew intel 处理器安装目录为 /opt/homebrew 问题1: 卡住 产生原因&#xff1a; m 系列使用 brew install lrzs…

linux驱动-CCF-1 provider 注册时钟

CCF: common clock frameword provider 注册时钟分析 1. 待注册 时钟数据 #define _REGISTER(f, s, ...) { .clk_register (bcm2835_clk_register)f, \.supported s, \.data __VA_ARGS__ } #define REGISTER_CLK(s, ...) _REGISTER(&bcm2835_register_clock, \s, …

Vscode——SSH连接不进去服务器的万能解决办法

一、查看当前版本VSCode的commit_id Help -> About -> Commit&#xff08;对应中文版本&#xff1a;帮助 -> 关于 -> 提交&#xff09; 会得到一串数字字母&#xff0c;我们简称 ID。 二、手动下载对应的VSCode包 浏览器输入&#xff1a;https://update.code.v…

手撕红黑树(kv模型模拟)

目录 前言 一、相关概念 二、性质介绍 红黑树平衡说明 三、红黑树模拟&#xff08;kv结构&#xff09; 1、红黑树节点 2、红黑树插入 2、特殊处理情况 声明&#xff1a; 情况一&#xff1a;cur为红&#xff0c;p为红&#xff0c;g为黑&#xff0c;u存在&#xff0c;且…

【MHA】MySQL高可用MHA介绍3-命令详解

目录 masterha_manager&#xff1a;运行 MHA Manager 的命令 通用参数 监控特定参数 故障转移特定参数 masterha_master_switch 手动故障转移 非交互式故障转移 计划&#xff08;在线&#xff09;主切换 masterha_check_status masterha_check_repl masterha_stop mas…

Spring Cloud学习笔记(Feign):配置类(未完成)

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、给Feign配置的方式1.1、通过Bean配置1.2、application.yaml配置 2、配置日志2.1、日志级别1.2、指定日志级别1.2.1、通过Bean配置1.2.2、application.yaml配置 3、Inteceptor配置 1、给Feign配置的方式 我们有…

视觉生成范式 VAR: Visual Auto Regressive

使 GPT 风格的自回归模型在图像生成首次超越扩散模型&#xff0c;并观察到与大语言模型相似的 Scaling Laws 缩放定律、Zero-shot Task Generalization 泛化能力 体验网站&#xff1a;https://var.vision/ 论文链接&#xff1a;https://arxiv.org/abs/2404.02905 开源代码&a…

牛客NC99 多叉树的直径【较难 深度优先 Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/a77b4f3d84bf4a7891519ffee9376df3 思路 核心就是树的最大直径(globalMax)一定是以某一个node为root最长的两个path-to-leaf. 就是普通dfs的同时算路径长度。时间: O(n), DFS一次 空间: O(n)参考答案Java impo…

通过this.$router.push跳转同一路由页面只会刷新一次的问题怎么解决

一、原因 Vue Router默认会认为同一路由之间的跳转是相同路由的导航&#xff0c;所以不会触发组件的重新渲染。 当我们连续重复跳转相同的路由导航时就会报错如&#xff1a; Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location…

在ArcGIS中,矢量数据有.shp,.mdb和.gdb,为啥建议使用gdb?

在ArcGIS中,矢量数据可以存储在多种格式中,如 .shp (Shapefile)、.mdb (Microsoft Access Database) 和 .gdb (Geodatabase)。每种格式都有其特定的用途和优缺点,但通常推荐使用 Geodatabase(.gdb)格式,原因如下: 1. 更高的数据容量和性能 容量: Shapefiles 和 MDB 文…

有关钱包相关开发的库和依赖

Trezor 钱包 GitHub 组织&#xff1a;https://github.com/trezor说明&#xff1a;Trezor 是一款硬件加密货币钱包&#xff0c;它的团队开发了与助记词相关的许多工具和库。 Electrum 钱包 GitHub 仓库&#xff1a;https://github.com/spesmilo/electrum说明&#xff1a;Electru…

Pytorch中保存模型的两种方法

目录 一、保存整个模型二、只保存模型参数 一、保存整个模型 这种方法会保存模型的整个定义&#xff08;包括网络结构和参数&#xff09;。这样保存的模型可以直接被加载并使用&#xff0c;但前提是保存和加载模型的代码环境需要完全一致。 保存模型时使用代码&#xff1a; …

stm32的GPIO基本结构

1.带FT标号的引脚能容忍5V 2.GPIO系统架构 stm32的所有GPIO都是挂载在APB2总线上的 3.GPIO的基本结构 在上图中&#xff0c;左边就是寄存器&#xff0c;右边就是驱动器了 保护二极管的作用&#xff1a;VDD表示3.3V&#xff0c;如果输入的电压的值大于3.3V&#xff0c;那么这个…

企业级OV SSL证书,主要应用在哪些场景

我们来看看OV SSL证书的一个典型应用&#xff0c;即电子商务网站。随着电子商务的发展&#xff0c;网上购物已经成为人们日常生活的一部分。然而&#xff0c;这同时也带来了一个问题&#xff0c;就是用户在进行网上交易时&#xff0c;如何保证其个人信息、银行卡信息等敏感数据…

就业班 第三阶段(nginx) 2401--4.26 day5 nginx5 nginx https部署实战

三、HTTPS 基本原理 1、https 介绍 HTTPS&#xff08;全称&#xff1a;HyperText Transfer Protocol over Secure Socket Layer&#xff09;&#xff0c;其实 HTTPS 并不是一个新鲜协议&#xff0c;Google 很早就开始启用了&#xff0c;初衷是为了保证数据安全。 近些年&…

BMP JPG PNG 介绍以及三者区别

BMP&#xff08;Bitmap&#xff09;、JPG&#xff08;Joint Photographic Experts Group&#xff09;和PNG&#xff08;Portable Network Graphics&#xff09;是三种常用的图像文件格式&#xff0c;各自具有独特的特性和应用场景。 下面是它们的详细介绍和区别&#xff1a; B…

免费实用在线小工具

免费在线工具 https://orcc.online/ pdf在线免费转word文档 https://orcc.online/pdf 时间戳转换 https://orcc.online/timestamp Base64 编码解码 https://orcc.online/base64 URL 编码解码 https://orcc.online/url Hash(MD5/SHA1/SHA256…) 计算 https://orcc.online/ha…

基于地图的平滑算法--佛洛依德路径平滑算法(FLOYD)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言基于地图的平滑算法--佛洛依德路径平滑算法(FLOYD)前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对*…

Python 数据库基类封装

目录 1.BaseEntity 2.t_user 3.DAOBase 4.UserDAO 刚开始用Python做Api后端&#xff0c;记录下学习过程 从数据库操作开始&#xff0c;定义实体&#xff0c;定义DAO层基类&#xff0c;及DAO业务类的使用 写的不好&#xff0c;有好的设计建议欢迎大家提出&#xff0c;一起…