阿里测评题
题目:
现在很多家长都会送小孩子去培训中心学习舞蹈,有一次舞蹈培训中心考试,因为小孩子要哄着才能更喜欢学,所以老师给孩子们准备了小贴纸奖励孩子,考试结束以后孩子们按照大小个站成一排,老师按照顺序给孩子们发小贴纸,每个孩子都会至少得到一个小贴纸,因为是按照大小个站成一排的,所以相邻的孩子成绩略有高低,为了鼓励相邻孩子向成绩好的孩子学习,成绩高的孩子会比成绩弱的孩子得到的小贴纸多,请问需要多少小贴纸发给孩子们?
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine();//读入一行string String[] c = s.split(",");//根据“,”进行分割 int[] arr = new int[c.length]; for (int i = 0; i < c.length; i++) { arr[i] = Integer.parseInt(c[i]);//将string转为int型 } int [] paper=new int[arr.length];//定义分配贴纸的数组 Arrays.fill(paper,1);//初始化为1 for(int i=0;i<arr.length;i++){ //前一个比当前的小,当前加1 if(i!=0){ if(arr[i]>arr[i-1]) paper[i]=paper[i-1]+1; else if(arr[i]==arr[i-1]) paper[i]=paper[i-1]; } //一个往前比,一个往后比,这个难想 //后一个比当前的小,当前加1 if(i!=arr.length-1&&arr[i]>arr[i+1]){ paper[i]=paper[i+1]+1; //加1后,如果前一个和当前相等,则前一个继续加1,向前遍历 for(int j=i;paper[j-1]==paper[j];j--){ paper[j-1]=paper[j]+1; } } } //输出总数 int sum=0; for(int i=0;i<arr.length;i++){ sum+=paper[i]; System.out.println(paper[i]); } System.out.println(sum); } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· AI Agent爆火后,MCP协议为什么如此重要!
· dotnet 源代码生成器分析器入门
· Draw.io:你可能不知道的「白嫖级」图表绘制神器
· ASP.NET Core 模型验证消息的本地化新姿势
· 从零开始:基于 PyTorch 的图像分类模型