网站制作公司违法/旺道seo营销软件
目录
70.爬楼梯
198.打家劫舍
139.单词拆分
322.零钱兑换
300.最长递增子序列
70.爬楼梯
题意:
假设你正在爬楼梯。需要
n
阶你才能到达楼顶。每次你可以爬
1
或2
个台阶。你有多少种不同的方法可以爬到楼顶呢?提示:
1 <= n <= 45
【输入样例】n=2
【输出样例】2
解题思路:
1. 明确当爬到第一阶台阶的时候,只有一种做法,就是这一步爬1个台阶;爬到第二阶台阶的时候有两种做法,就是走2个1台阶或1次2台阶。
2.当你要爬到第n阶台阶的时候,你有两种选择,一种选择是最后一步走1个台阶,意味着你的爬法=走到n-1个台阶的爬法;第二种选择是最后一步走2个台阶,意味着你的爬法=走到n-2个台阶的爬法;所有走到n阶的爬法应该是走到n-1+走到n-2
3. 因为n的范围很小,用数组实现,如果要方便直接将num[1]和num[2]的值先赋值好的话,初始化不要写new int[n],不然需要先判断n是否大于1,是否大于2.
class Solution {public int climbStairs(int n) {int[] num=new int[50];num[1]=1;num[2]=2;for(int i=3;i<=n;i++){num[i] = num[i-1]+num[i-2];}return num[n];}
}
时间: 击败了100.00%
内存: 击败了39.14%
198.打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
提示:
1 <= nums.length <= 100
0 <= nums[i] <= 400
【输入样例】[1,2,3,1]
【输出样例】4
解题思路:
1.定义一个数组count存储打劫到第i家的时候可以获得的最高金额;
2.寻找关系,为了不触动警报的前提下获取最多金额,我们采取隔房打劫的思路,在第i家的时候,如果选择打劫第i家,那么其金额应该是nums[i]+count[i-2];如果不选择打劫第i家,到这里的的金额是count[i-1],要获得最高的金额,就需要比较哪一种做法金额较高;
3. 确定初始值,打劫第一家的时候,没有选择,count[1]=nums[1],打劫第二家也一样,不能触发警报,只能打劫本身count[2]=nums[2],但是,其也可以选择不打劫第二家,打劫第一家,即count[2]=max(nums[2],count[1])
class Solution {public int rob(int[] nums) {int len = nums.length;int[] count = new int[len];count[0] = nums[0];if(len >= 2 )count[1] = Math.max(nums[1],count[0]);for(int i = 2;i<len;++i){count[i] = Math.max(count[i-1],count[i-2]+nums[i]);}return count[len-1];}
}
时间: 击败了100.00%
内存: 击败了67.42%
139.单词拆分
给你一个字符串
s
和一个字符串列表wordDict
作为字典。请你判断是否可以利用字典中出现的单词拼接出s
。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。
提示:
1 <= s.length <= 300
1 <= wordDict.length <= 1000
1 <= wordDict[i].length <= 20
s
和wordDict[i]
仅由小写英文字母组成wordDict
中的所有字符串 互不相同
【输入样例】s = "leetcode", wordDict = ["leet", "code"]
【输出样例】true
解题思路:
1. 定义数组dp[i],表示字符串长度为i时,是否可以拆解为一个或多个在字典中出现的单词,可以为true,不让为false;
2. dp[0]表示空字符串,此时默认为true
3. 字符串长度为i时,dp[i]的取值依靠什么?假设j<i,dp[j]=true且字符串字串(j,i]存在字典中,则dp[i]为true;
4. 遍历结束时将dp[s.length]return
5. 为了更好的判断字串(j,i]是否在字典中,先将字典转换成set
class Solution {public boolean wordBreak(String s, List<String> wordDict) {HashSet<String> set = new HashSet<String>(wordDict);boolean[] dp = new boolean[s.length()+1];dp[0] = true;for(int i=1;i<=s.length();++i){for(int j=0;j <i;++j){if(dp[j] && set.contains(s.substring(j,i))){dp[i] = true;break;//j这里不用再遍历了,从下一位i开始}}}return dp[s.length()];}
}
时间: 击败了66.63%
内存: 击败了70.02%
322.零钱兑换
给你一个整数数组
coins
,表示不同面额的硬币;以及一个整数amount
,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回
-1
。你可以认为每种硬币的数量是无限的。
【输入样例】coins =
[1, 2, 5]
, amount =11
【输出样例】3
11=5+5+1
解题思路:
1. 定义数组dp[i],表示凑足总额为i所需的最高硬币个数
2. 寻找规律,凑足金额为i-coins[j]的最少个数为dp[i-coins[j]],那么只需要加上一个硬币coins[j]即可获得dp[i],dp[i]取小min(dp[i],dp[i-coins[j]]+1);
3. 数组初始化,凑如总金额为0所需的钱币个数为0,dp[0]=0,其余的dp[i]下标为最大值,因为要进行min操作
class Solution {public int coinChange(int[] coins, int amount) {int max = Integer.MAX_VALUE;int[] dp = new int[amount+1];//初始化数组for(int i = 1; i< amount+1;++i){dp[i] = max;}dp[0] = 0;for(int j = 0;j < coins.length;++j){//从这个钱币开始for(int i = coins[j]; i <=amount; ++i){if(dp[i-coins[j]] != max){dp[i] = Math.min(dp[i],dp[i-coins[j]]+1);}}}return dp[amount] == max ? -1 : dp[amount];}
}
时间: 击败了45.96%
内存: 击败了19.52%
300.最长递增子序列
给你一个整数数组
nums
,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,
[3,6,2,7]
是数组[0,3,1,6,2,2,7]
的子序列。
【输入样例】nums = [10,9,2,5,3,7,101,18]
【输出样例】4
[2,3,7,101]
解题思路:
1. 定义数组dp[i],表示i之前包括i的以nums[i]结尾的最长递增子序列的长度
2. 位置i的最长递增子序列等于j从0到i-1各个位置的最长递增子序列+1的最大值
3. dp[i]的默认大小为1,就是只选择本身的情况
class Solution {public int lengthOfLIS(int[] nums) {int[] dp = new int[nums.length];int res = 1;for(int i=0;i<nums.length;++i){dp[i] = 1;}for(int i = 1; i < nums.length; ++i){for(int j = 0;j < i; ++j){if(nums[i] > nums[j]){//递增子序列,所以要大才可以计算dp[i] = Math.max(dp[i],dp[j]+1);}res = Math.max(dp[i],res);}}return res;}
}
时间: 击败了25.90%
内存: 击败了15.18%
相关文章:

【LeetCode-面试经典150题-day20】
目录 70.爬楼梯 198.打家劫舍 139.单词拆分 322.零钱兑换 300.最长递增子序列 70.爬楼梯 题意: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 提示: 1 < n < …...
回归与聚类算法系列②:线性回归
目录 1、定义与公式 2、应用场景 3、特征与目标的关系分析 线性回归的损失函数 为什么需要损失函数 损失函数 ⭐如何减少损失 4、优化算法 正规方程 梯度下降 优化动态图 偏导 正规方程和梯度下降比较 5、优化方法GD、SGD、SAG 6、⭐线性回归API 7、实例&#…...

springBoot:redis使用
需求:查询酒店房间列表 1、引入依赖 <!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2、配置yml文件 server:port: 80…...

cmake 选择 vs编译器
QQ:2967732156 QQ交流群:622684416 // 编译VS2017版本的Tars, Release版本 // win32 cmake .. -G "Visual Studio 15 2017" -D CMAKE_BUILD_TYPERelease // x64 cmake .. -G "Visual Studio 15 2017 Win64" -D CMAKE_BUILD_…...

项目(智慧教室)第一部分:cubemx配置,工程文件的移植,触摸屏的检测,项目bug说明
第一章:需求与配置 一。项目需求 二。实现外设控制 注意: 先配置引脚,再配置外设。否则会出现一些不可预料的问题 1.时钟,串口,灯,蜂鸣器配置 (1)RCC配置为外部时钟,修…...

Springboot集成redis--不同环境切换
1.单机配置 spring:redis:mode: singletonhost: 127.0.0.1port: 6379lettuce:pool:max-active: 8 #连接池最大阻塞等待时间(使用负值表示没有限制max-idle: 2 #连接池中的最大空闲连接min-idle: 1 #连接池最大阻塞等待时间(使用负值表示没有限…...

稀疏数组的实现
文章目录 目录 文章目录 前言 一 什么是稀疏数组? 二 稀疏数组怎么存储数据? 三 稀疏数组的实现 总结 前言 大家好,好久不见了,这篇博客是数据结构的第一篇文章,望大家多多支持! 一 什么是稀疏数组? 稀疏数组(Sparse Array)是一种数据结构&a…...

表达式语言的新趋势!了解SPEL如何改变开发方式
文章首发地址 SpEL(Spring Expression Language)是一种表达式语言,由Spring框架提供和支持。它可以在运行时对对象进行解析和计算,用于动态地构建和操作对象的属性、方法和表达式。以下是SpEL的一些特性和功能: 表达式…...

一套成熟的实验室信息管理系统(云LIS源码)ASP.NET CORE
一套成熟的实验室信息管理系统,集前处理、检验、报告、质控、统计分析、两癌等模块为一体的网络管理系统。它的开发和应用将加快检验科管理的统一化、网络化、标准化的进程。 LIS把检验、检疫、放免、细菌微生物及科研使用的各类分析仪器,通过计算机联…...

NPM使用技巧
NPM使用技巧 前言技巧全局模块位置PowerShell报错安装模块冲突 NPM介绍NPM命令使用方法基本命令模块命令查看模块运行命令镜像管理 常用模块rimrafyarn 前言 本文包含NodeJS中NPM包管理器的使用技巧,具体内容包含NPM介绍、NPM命令、常用模块等内容,还包…...

java学习一
目录 Java 与 C 的区别 Java程序是编译执行还是解释执行 编译型语言 解释型语言 Java 与 C 的区别 Java 是纯粹的面向对象语言,所有的对象都继承自 java.lang.Object,C 兼容 C ,不但支持面向对象也支持面向过程。Java 通过虚拟机从而实现…...

PV PVC in K8s
摘要 在Kubernetes中,PV(Persistent Volume)和PVC(Persistent Volume Claim)是用于管理持久化存储的重要资源对象。PV表示存储的实际资源,而PVC表示对PV的声明性要求。当应用程序需要使用持久化存储时&…...

SAP-PP:基础概念笔记-5(物料主数据的MRP1~4视图)
文章目录 前言一、MRP1视图Base Unit of Measure(UoM)MRP 组采购组ABC 指示器Plant-Specific Material Status 特定的工厂物料状态MRP 类型 MRP TypeMRP 类型 MRP TypeMaster Production Scheduling(MPS) 主生产计划基于消耗的计划(CBP)再订货点Reorder-…...

【C语言】初阶测试 (带讲解)
目录 ① 选择题 1. 下列程序执行后,输出的结果为( ) 2. 以下程序的输出结果是? 3. 下面的代码段中,执行之后 i 和 j 的值是什么() 4. 以下程序的k最终值是: 5. 以下程序的最终的输出结果为ÿ…...

用huggingface.Accelerate进行分布式训练
诸神缄默不语-个人CSDN博文目录 本文属于huggingface.transformers全部文档学习笔记博文的一部分。 全文链接:huggingface transformers包 文档学习笔记(持续更新ing…) 本部分网址:https://huggingface.co/docs/transformers/m…...

unity 物体至视图中心以及新对象创建位置
如果游戏对象不在视野中心或在视野之外, 一种方法是双击Hierarchy中的对象名称 另一种是选中后按F 新建物体时对象的位置不是在坐标原点,而是在当前屏幕的中心...

船舶稳定性和静水力计算——绘图体平面图,静水力,GZ计算(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Python 网页爬虫的原理是怎样的?
网页爬虫是一种自动化工具,用于从互联网上获取和提取信息。它们被广泛用于搜索引擎、数据挖掘、市场研究等领域。 网页爬虫的工作原理可以分为以下几个步骤:URL调度、页面下载、页面解析和数据提取。 URL调度: 网页爬虫首先需要一个初始的U…...

python技术面试题合集(二)
python技术面试题 1、简述django FBV和CBV FBV是基于函数编程,CBV是基于类编程,本质上也是FBV编程,在Djanog中使用CBV,则需要继承View类,在路由中指定as_view函数,返回的还是一个函数 在DRF中的使用的就是…...

【linux命令讲解大全】089.使用tree命令快速查看目录结构的方法
文章目录 tree补充说明语法选项列表选项文件选项排序选项图形选项XML / HTML / JSON 选项杂项选项 参数实例 从零学 python tree 树状图列出目录的内容 补充说明 tree 命令以树状图列出目录的内容。 语法 tree [选项] [参数]选项 列表选项 -a:显示所有文件和…...

【C++】—— 单例模式详解
前言: 本期,我将要讲解的是有关C中常见的设计模式之单例模式的相关知识!! 目录 (一)设计模式的六⼤原则 (二)设计模式的分类 (三)单例模式 1、定义 2、…...

TheRouter 框架原理
TheRouter 框架入口方法 通过InnerTheRouterContentProvider 注册在AndroidManifest.xml中,在应用启动时初始化 <application><providerandroid:name"com.therouter.InnerTheRouterContentProvider"android:authorities"${applicationId}.…...

系列十二、Java操作RocketMQ之带标签Tag的消息
一、带标签的Tag消息 1.1、概述 RocketMQ提供消息过滤的功能,通过Tag或者Key进行区分。我们往一个主题里面发送消息的时候,根据业务逻辑可能需要区分,比如带有tagA标签的消息被消费者A消费,带有tagB标签的消息被消费者B消费&…...

Java面向对象学习笔记-1
前言 “Java 学习笔记” 是为初学者和希望加深对Java编程语言的理解的人们编写的。Java是一门广泛应用于软件开发领域的强大编程语言,它的语法和概念对于初学者来说可能有些复杂。这份学习笔记的目的是帮助读者逐步学习Java的基本概念,并提供了一系列示…...

el-table根据data动态生成列和行
css //el-table-column加上fixed后会导致悬浮样式丢失,用下面方法可以避免 .el-table__body .el-table__row.hover-row td{background-color: #083a78 !important; } .el-table tbody tr:hover>td {background: #171F34 !important; }html <el-table ref&quo…...

【c++】如何有效地利用命名空间?
🌱博客主页:青竹雾色间 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 ✨人生如寄,多忧何为 ✨ 目录 前言什么是命名空间?命名空间的语法命名空间的使用避免命名冲突命名空间的嵌套总结 前言 当谈到C编…...

Go语言传参
为了让新手尽快熟悉go的使用,特记录此文,不必谢我,转载请注明! Go 语言中参数传递的各种效果,主要内容包括: 传值效果指针传递结构体传递map 传递channel 传递切片传递错误传递传递效果示例传递方式选择原文连接:https://mp.weixin.qq.com/s?__biz=MzA5Mzk4Njk1OA==&…...

SAP PI 配置SSL链接接口报错问题处理Peer certificate rejected by ChainVerifier
出现这种情况一般无非是没有正确导入证书或者证书过期的情况 第一种,如果没有导入证书的话,需要在NWA中的证书与验证-》CAs中导入管理员提供的证书,这里需要注意的是,需要导入完整的证书链。 第二种如果是证书过期的,…...

【MyBatisⅡ】动态 SQL
目录 🎒1 if 标签 🫖2 trim 标签 👠3 where 标签 🦺4 set 标签 🎨5 foreach 标签 动态 sql 是Mybatis的强⼤特性之⼀,能够完成不同条件下不同的 sql 拼接。 在 xml 里面写判断条件。 动态SQL 在数据库里…...

音视频入门基础理论知识
文章目录 前言一、视频1、视频的概念2、常见的视频格式3、视频帧4、帧率5、色彩空间6、采用 YUV 的优势7、RGB 和 YUV 的换算 二、音频1、音频的概念2、采样率和采样位数①、采样率②、采样位数 3、音频编码4、声道数5、码率6、音频格式 三、编码1、为什么要编码2、视频编码①、…...