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

JAVA算法刷题---DAY2 牛牛的快递、最小花费爬楼梯、数组中两个字符串的最小距离

本系列可作为JAVAEE初阶学习系列的笔记,文中提到的一些练习的代码,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!

系列文章目录

JAVA初阶---------已更完

JAVA数据结构---------已更完

数据库初阶----------已更完

JAVA EE初阶---------正在更新

JAVA算法刷题---DAY1 数字统计、两个数组的交集、点击消除

JAVA算法刷题---DAY2 牛牛的快递、最小花费爬楼梯、数组中两个字符串的最小距离


目录

目录

系列文章目录

目录

前言

1.数字统计

描述

输入描述:

输出描述:

示例1

示例2

2.最小花费爬楼梯

描述

输入描述:

输出描述:

示例1

示例2

3.数组中两个字符串的最小距离

描述

输入描述:

输出描述:

示例1

示例2

备注:

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

1.数字统计


题目链接:牛牛的快递_牛客题霸_牛客网

描述

牛牛正在寄快递,他了解到快递在 1kg 以内的按起步价 20 元计算,超出部分按每 kg 1元计算,不足 1kg 部分按 1kg计算。如果加急的话要额外付五元,请问牛牛总共要支付多少快递费

输入描述:

第一行输入一个单精度浮点数 a 和一个字符 b ,a 表示牛牛要寄的快递的重量,b表示牛牛是否选择加急,'y' 表示加急 ,'n' 表示不加急。

输出描述:

输出牛牛总共要支付的快递费用

示例1

输入:

1.5 y

复制输出:

26

示例2

输入:

0.7 n

复制输出:

20

import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); double a= in.nextDouble(); char b=in.next().charAt(0); int ret=0; if(a<1){ ret=20; }else{ ret=20+(int)Math.ceil(a-1); } if(b=='y'){ ret+=5; } System.out.println(ret); } }

2.最小花费爬楼梯


题目链接:最小花费爬楼梯_牛客题霸_牛客网

描述

给定一个整数数组 cost cost ,其中 cost[i] cost[i] 是从楼梯第i i 个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。

数据范围:数组长度满足 1≤n≤105 1≤n≤105 ,数组中的值满足 1≤costi≤104 1≤costi​≤104

输入描述:

第一行输入一个正整数 n ,表示数组 cost 的长度。

第二行输入 n 个正整数,表示数组 cost 的值。

输出描述:

输出最低花费

示例1

输入:

3 2 5 20

复制输出:

5

复制说明:

你将从下标为1的台阶开始,支付5 ,向上爬两个台阶,到达楼梯顶部。总花费为5

示例2

输入:

10 1 100 1 1 1 90 1 1 80 1

复制输出:

6

复制说明:

你将从下标为 0 的台阶开始。 1.支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。 2.支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。 3.支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。 4.支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。 5.支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。 6.支付 1 ,向上爬一个台阶,到达楼梯顶部。 总花费为 6 。

import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); int n=in.nextInt(); int[] cost=new int[n]; int[] dp=new int[n+1]; for(int i=0;i<n;i++){ cost[i]=in.nextInt(); } if (n == 1) { System.out.println(cost[0]); return; } for(int i=2;i<=n;i++){ dp[i]=Math.min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]); } System.out.println(dp[n]); } }

3.数组中两个字符串的最小距离


题目链接:数组中两个字符串的最小距离_牛客题霸_牛客网

描述

给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。

输入描述:

输入包含有多行,第一输入一个整数n(1≤n≤105)(1≤n≤105),代表数组strs的长度,第二行有两个字符串分别代表str1和str2,接下来n行,每行一个字符串,代表数组strs (保证题目中出现的所有字符串长度均小于等于10)。

输出描述:

输出一行,包含一个整数,代表返回的值。

示例1

输入:

1 CD AB CD

复制输出:

-1

示例2

输入:

5 QWER 666 QWER 1234 qwe 666 QWER

复制输出:

1

备注:

时间复杂度O(n),额外空间复杂度O(1)

import java.util.*; import java.io.*; public class Main{ public static void main(String[] args) throws Throwable{ BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); int n=Integer.parseInt(reader.readLine()); String[] str=reader.readLine().split(" "); String s1=str[0],s2=str[1]; int prev1=-1,prev2=-1; int ret=0X3f3f3f3f; for(int i=0;i<n;i++){ String s=reader.readLine(); if(s.equals(s1)){ if(prev2!=-1){ ret=Math.min(ret,i-prev2); } prev1=i; } else if(s.equals(s2)){ if(prev1!=-1){ ret=Math.min(ret,i-prev1); } prev2=i; } } System.out.println(ret==0X3f3f3f3f?-1:ret); } }


总结

以上就是今天要讲的内容,本文简单记录了算法刷题内容,仅作为一份简单的笔记使用,大家根据注释理解,您的点赞关注收藏就是对小编最大的鼓励!

http://www.jsqmd.com/news/976858/

相关文章:

  • 电子系统噪声抑制与EMC设计:从原理到工程实践
  • 2026年模锻机厂家推荐榜单:半轴/凸轮轴/齿轮/盘齿/传动轴/航空/航天/军品精密锻件,重型锻压新势力! - 企业推荐官【官方】
  • 我的智能恒温箱项目笔记:STM32F4通过SPI读取MAX31865温度传感器全流程
  • RTL8153B-VB-CG、集成 LDO / 开关稳压器,支持 EEE 节能与双唤醒功能的网口 IC
  • 航空危险品运输全流程智能监管平台技术方案
  • 手把手教你用Python爬取‘可可英语’《现代大学英语精读》原文与音频(以第六单元A篇为例)
  • 3步掌握XAPK转APK:零依赖Android应用格式转换终极指南
  • 亚马逊团队“最优快递员“:把一个臃肿的AI大脑变成高效专家小组
  • 别再为跨时钟域头疼了!手把手教你用Verilog实现格雷码转换(附完整测试代码)
  • 数据分析面试实战题库:SQL手写、业务拆解、统计考点+大厂真题带解析
  • 三步搞定抖音视频无水印下载:终极免费解决方案指南
  • 旧手机别扔!用Termux+Frp把它变成24小时在线的私人云服务器(保姆级教程)
  • 朗禾品牌设计,深耕餐饮VI与空间设计,以专业实力赋能品牌成长 - TOP10品牌推荐榜单
  • 2026年6月天津装修公司选择指南:从合同到交付的全程无忧选企攻略 - 资讯速览
  • 别再手动记测点了!UaExpert 1.5.1拖拽式监控OPC UA数据,效率翻倍
  • 告别HC-05!用ESP32内置蓝牙实现主从机通信,成本直降且更灵活
  • 别再花钱买服务器了!用Gitee+PicGo打造免费图床和静态网站二合一方案
  • 别只跑代码!深入理解U-Net在ISBI细胞分割中的‘跳跃连接’与损失函数调优
  • Windows右键菜单管理架构解析:ContextMenuManager的核心技术与实现方案
  • 马口铁盒定制厂家观察:东莞市万鑫隆制罐有限公司的业务纵深与认证体系 - 变量人生001
  • 别再每次烧录了!用STM32F4内部Flash保存PID参数,一个完整工程示例
  • 咸阳樱花热水器燃气灶售后维修电话|快速上门 - GrowthUME
  • Maxwell 网格划分方法ON SELECTION 下Length Base 与 Skin depth based 对比分析
  • 行测逻辑判断总是丢分?章晓铭老师,带你搞定逻辑题,正确率直冲 90% - 资讯速览
  • KeSpeech:革新方言语音识别的分布式智能数据平台
  • FlicFlac:Windows平台音频格式转换的技术方案对比与实践指南
  • 保姆级教程:用Python从Waymo Open Dataset里提取3D目标检测标签(附完整代码)
  • 3步掌握Duplicity:免费Web版《缺氧》存档编辑器终极指南
  • 天龙八部GM工具终极指南:从零构建你的单机游戏管理平台
  • 上海防水堵漏公司怎么选:分场景选型指南附自检清单 - 资讯速览