当前位置: 首页 > news >正文

蓝桥杯刷题——day2

蓝桥杯刷题——day2

  • 题目一
    • 题干
    • 题目解析
    • 代码
  • 题目二
    • 题干
    • 解题思路
    • 代码

题目一

题干

三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。
题目链接:三步问题
示例1:

输入:n = 3
输出:4
说明: 有四种走法

示例2:

输入:n = 5
输出:13

题目解析

这条题目老生常谈了,其实就是青蛙跳台的问题,只不过从青蛙只能跳1格或者2格改成了可以跳1格或者2格或者3格而已,青蛙跳台的问题可以看我的这个博客:青蛙跳台。因此思想仍然是不变的,也就是说可以用动态规划解决这个问题:同样的,初始情况是:

f(1) = 1
f(2) = 2
f(3) = 4
f(n) = f(n-1)+f(n-2) +f(n-3)

下面是完整代码:

代码

class Solution {//f(1) = 1//f(2) = 2//f(3) = 4//f(n) = f(n-1) + f(n-2) + f(n-3)public int waysToStep(int n) {ArrayList<Integer> list = new ArrayList<>();if(n == 1){return 1;}if(n == 2){return 2;}if(n == 3){return 4;}list.add(1);list.add(2);list.add(4);for(int i = 3; i < n;i++){list.add(((list.get(i-1) + list.get(i-2)) % 1000000007  + list.get(i - 3)) % 1000000007) ;}return list.get(n-1);}
}

有的同学要问了,怎么感觉不对劲呀,这个1000000007是个什么玩意,这个当然是题目的要求,因为我们在计算到后面的时候数字会越来越大,因此很可能超出int的范围,因此我们需要对结果进行取余,而题目的要求是对1000000007取余,那么满足他题目的要求就可以了,还有一个问题:(list.get(i-1) + list.get(i-2)) % 1000000007,这个是为什么?当然是因为,list.get(i-1)和list.get(i-2)单独的值都是在int范围内的,但是两者相加就不一定了,因此我们要对他俩和的结果进行取余。

题目二

题干

给你一个字符串 s,找到 s 中最长的回文子串。
题目链接:最长回文子串
示例一:

输入:s = “babad”
输出:“bab”
解释:“aba” 同样是符合题意的答案。

示例二:

输入:s = “cbbd”
输出:“bb”

解题思路

这道题看起来无从下手,其实并不难,我们可以利用滑动窗口来解决,什么意思?例如:求解s = “babad”的最长回文子串,我们画个图来理解一下:
在这里插入图片描述
我们设置一个滑动窗口的长度为5,那么我们在定义两个指针x和y,两个指针同时向中间移动,直到指针相遇如果都满足两指针指向的字符一样,那么则证明长度为5就是最长回文子串,如果指针在相遇之前不满足两指针指向的字符一样,那么我们滑动窗口长度减去1,变为4,也就是一下两种情况:
在这里插入图片描述
以此类推,如此一来滑动窗口逐步减少,总能够找到符合条件的最长回文子串。下面是完整代码:

代码

import java.util.*;
class Solution {public boolean Palindrome(char[] array, int x,int y){while(x < y){if(array[x] == array[y]){x++;y--;}else {break;}}if(x >= y){return true;}else {return false;}}public String longestPalindrome(String s) {ArrayList<String> list = new ArrayList<>();char[] array = s.toCharArray();int size = array.length;int i = 0;for(i = size;i > 0; i--){for(int j = 0; j <size - i + 1 ;j++){if(Palindrome(array,j, i -1 + j)){char[] subArray = Arrays.copyOfRange(array, j, i + j);String result = new String(subArray);list.add(result);break;}}}return list.get(0);}
}

当然我这个方法肯定不是最优解,肯定有各位方便巧妙的方法,如果各位有什么想法或者建议欢迎私信+评论,感谢大家的点赞和收藏!

相关文章:

蓝桥杯刷题——day2

蓝桥杯刷题——day2 题目一题干题目解析代码 题目二题干解题思路代码 题目一 题干 三步问题。有个小孩正在上楼梯&#xff0c;楼梯有n阶台阶&#xff0c;小孩一次可以上1阶、2阶或3阶。实现一种方法&#xff0c;计算小孩有多少种上楼梯的方式。结果可能很大&#xff0c;你需要…...

5.删除链表的倒数第N个节点

19.删除链表的倒数第N个节点 题目&#xff1a; 19. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; 分析&#xff1a; 要删除倒数第几个节点&#xff0c;那么我们需要怎么做呢&#xff1f;我们需要定义两个指针&#xff0c;快指针和慢指针&#xff0c;…...

自己总结:selenium高阶知识

全篇大概10000字&#xff08;含代码&#xff09;&#xff0c;建议阅读时间30min 一、等待机制 如果有一些内容是通过Ajax加载的内容&#xff0c;那就需要等待内容加载完毕才能进行下一步操作。 为了避免人为操作等待&#xff0c;会遇到的问题&#xff0c; selenium将等待转换…...

前端怎么预览pdf

1.背景 后台返回了一个在线的pdf地址&#xff0c;需要我这边去做一个pdf的预览&#xff08;需求1&#xff09;&#xff0c;并且支持配置是否可以下载&#xff08;需求2&#xff09;&#xff0c;需要在当前页就能预览&#xff08;需求3&#xff09;。之前我写过一篇预览pdf的文…...

activemq 的安装部署

下载 https://activemq.apache.org/components/classic/download/# 在/opt目录下载 wget https://dlcdn.apache.org//activemq/5.18.6/apache-activemq-5.18.6-bin.tar.gz解压 tar -zxvf apache-activemq-5.18.6-bin.tar.gz配置java环境 vim /opt/apache-activemq-5.18.6/b…...

【H3CNE邓方鸣】配置链路聚合+2024.12.11

文章目录 链路聚合作用负载分担分类静态聚合动态聚合 链路聚合作用 定义&#xff1a;把连接到统一交换机上的多个物理端口捆绑为一个逻辑端口 增加链路带宽&#xff1a;聚合组内只要还有物理端口存活&#xff0c;链路就不会中断 提供链路可靠性&#xff1a;避免了STP计算&…...

C语言 学习 日志 递归函数 2024/12/12

C语言 学习 日志 递归函数 介绍: 初始调用&#xff1a;递归函数被首次调用。递归调用&#xff1a;递归函数在其定义中调用自身&#xff0c;创建新的栈帧。基本情况检查&#xff1a;每次递归调用时&#xff0c;检查是否满足基本情况。如果满足&#xff0c;返回结果并开始回溯。…...

【Ubuntu】使用ip link工具创建虚拟局域网并配置?

&#x1f98b;&#x1f98b;&#x1f98b;如何使用ip link工具创建虚拟局域网&#xff1f; sudo ip link add link enx888bd66b7000 name enx.120 type vlan id 120 上述命令使用ip link工具在Linux系统中创建了一个新的虚拟局域网&#xff08;VLAN&#xff09;接口&#xff0c…...

flink sink kafka的事务提交现象猜想

现象 查看flink源码时 sink kafka有事务提交机制&#xff0c;查看源码发现是使用两阶段提交策略&#xff0c;而事务提交是checkpoint完成后才执行&#xff0c;那么如果checkpoint设置间隔时间比较长时&#xff0c;事务未提交之前&#xff0c;后端应该消费不到数据&#xff0c…...

网络原理03

回顾 应用层&#xff1a;应用程序&#xff0c;数据具体如何使用 传输层&#xff1a;关注起点和终点 网络层&#xff1a;关注路径规划 数据链路层&#xff1a;关注相邻节点的转发 物理层&#xff1a;硬件设备 应用层 应用程序 在应用层&#xff0c;很多时候&#xff0c;…...

每天40分玩转Django:简介和环境搭建

Django简介和环境搭建 一、课程概述 学习项目具体内容预计用时Django概念Django框架介绍、MVC/MTV模式、Django特点60分钟环境搭建Python安装、pip配置、Django安装、IDE选择45分钟创建项目项目结构、基本配置、运行测试75分钟实战练习创建个人博客项目框架60分钟 二、Djang…...

【蓝桥杯最新板】蓝桥杯嵌入式液晶上实现电子时钟

这几年蓝桥杯比赛比较适合学生技能学习&#xff0c;考虑板子功能&#xff0c;提出完成的任务。 要求在液晶完成如下图效果&#xff1a; 主要是实现液晶显示时钟和数字时钟&#xff0c;具体样式可以依据实际情况微调。 实现过程&#xff1a; 1.需要画圆&#xff08;外圆、内圆…...

【机器学习】基础知识:拟合度(Goodness of Fit)

拟合度概念及意义 拟合度&#xff08;Goodness of Fit&#xff09;是衡量统计模型对数据解释能力的指标&#xff0c;用于评价模型对观测数据的拟合效果。在回归分析、分类模型或其他预测模型中&#xff0c;拟合度是模型性能的重要衡量标准。 1. 拟合度的作用 拟合度的主要作用…...

使用Jackson库在Java应用程序中将Map对象转换为JSON数组字符串,以及反向操作

在现代Java应用程序中&#xff0c;特别是使用RESTful Web服务时&#xff0c;经常需要将Java对象转换为JSON格式&#xff0c;反之亦然。 当表示如用户管理系统中的用户列表这样的数据结构时&#xff0c;将Map转换为JSON数组字符串变得非常有用。在这个指南中&#xff0c;我们将…...

深入解析强化学习中的 Generalized Advantage Estimation (GAE)

中文版 深入解析强化学习中的 Generalized Advantage Estimation (GAE) 1. 什么是 Generalized Advantage Estimation (GAE)? 在强化学习中&#xff0c;计算策略梯度的关键在于 优势函数&#xff08;Advantage Function&#xff09; 的设计。优势函数 ( A ( s , a ) A(s, a…...

离开wordpress

wordpress确实挺好用的 插件丰富 主题众多 收费的插件也很多 国内的做主题的也挺好 但是服务器跑起来各种麻烦伤脑筋 需要花在维护的时间太多了 如果你的网站持续盈利 你就会更担心访问质量访问速度 而乱七八糟的爬虫黑客 让你的服务器不堪重负 突然有一天看到了静态站…...

Python的3D可视化库【vedo】1-4 (visual模块) 体素可视化、光照控制、Actor2D对象

文章目录 6. VolumeVisual6.1 关于体素6.2 显示效果6.2.1 遮蔽6.2.2 木纹或磨砂效果 6.3 颜色和透明度6.3.1 透明度衰减单位6.3.2 划分透明度标量梯度6.3.3 设置颜色或渐变6.3.4 标量的计算模式6.3.5 标量的插值方式 6.4 过滤6.4.1 按单元格id隐藏单元格6.4.2 按二进制矩阵设置…...

使用html和JavaScript实现一个简易的物业管理系统

码实现了一个简易的物业管理系统&#xff0c;主要使用了以下技术和功能&#xff1a; 1.主要技术 使用的技术&#xff1a; HTML: 用于构建网页的基本结构。包括表单、表格、按钮等元素。 CSS: 用于美化网页的外观和布局。设置字体、颜色、边距、对齐方式等样式。 JavaScript…...

什么是纯虚函数?什么是抽象类?纯虚函数和抽象类在面向对象编程中的意义是什么?

纯虚函数 纯虚函数是一个在基类中声明但不实现的虚函数。它的声明方式是在函数声明的末尾添加 0。这意味着这个函数没有提供具体的实现&#xff0c;任何继承这个基类的派生类都必须提供这个函数的实现&#xff0c;否则它们也会变成抽象类&#xff0c;无法实例化。 示例&#…...

#Ts篇: Record<string, number> 是 TypeScript 中的一种类型定义,它表示一个键值对集合

Record<string, number> 是 TypeScript 中的一种类型定义&#xff0c;它表示一个键值对集合&#xff0c;其中键的类型是 string&#xff0c;而值的类型是 number。具体来说&#xff0c;Record<K, T> 是 TypeScript 的一个内置高级类型&#xff0c;用于根据传入的键…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...