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

个人网站备案查询seo优化上首页

个人网站备案查询,seo优化上首页,徐州新沂网站建设,中建国能建设集团网站蓝桥杯刷题——day2 题目一题干题目解析代码 题目二题干解题思路代码 题目一 题干 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要…

蓝桥杯刷题——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);}
}

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

http://www.hrbkazy.com/news/49553.html

相关文章:

  • ueditor如何上传wordpress免费seo在线优化
  • 武汉网站制作027苹果cms永久免费建站程序
  • 做网站外包好吗免费域名解析网站
  • lnmp搭建网站营销推广的公司
  • 管理公司网站建设手游推广渠道平台
  • 做网站网络合同seo营销推广
  • 网站关键词突然没有排名了游戏推广引流软件
  • 增城网站建设长沙seo推广公司
  • 书店网站模版seo在线工具
  • 大连网站建设那家好网络营销专业学什么
  • 宁波网站优化深圳做网站的公司
  • 最好的小型 网站开发系统引流推广的句子
  • 我的世界是怎么做的视频网站vue seo优化
  • b2b网站开发技术文档推广类软文
  • 公司网站域名做邮箱外链网盘下载
  • 湖南网站制作电话浙江短视频seo优化网站
  • 景泰做网站国产免费crm系统有哪些在线
  • 购车网站开发数据库er图网络推广培训班
  • 泰安网站建设个人工作室搜索引擎推广试题
  • 西安做网站哪里便宜东莞seo网络公司
  • iis7搭建网站教程拉新推广赚钱的app
  • 商洛网站制作千锋教育学费一览表
  • 网站的风格保持一致留号码的广告网站不需要验证码
  • 江西奶茶加盟网站建设yandex引擎
  • 做电商网站有什语言好网站单向外链推广工具
  • seo搜索引擎优化技术教程安徽网络seo
  • 网站模板免费下载种子搜索神器在线搜
  • css响应式布局上海关键词优化外包
  • 哪些网站容易做智能优化大师下载
  • 昌平做网站公司如何建造一个网站