import java.util.HashMap; public class exam3 {          public static void main(String [] args) {                      HashMap<Integer, Integer> map=new HashMap<Integer,Integer>();             int k[]= {1,2,3,3,4};             int len=k.length;             int minIndex = minIndex(k);             map.put(minIndex, 1);             int index =left(minIndex, len);             while(map.keySet().size()!=len) {                 int left1=left(index, len);                 int right1=right(index, len);                 if(k[left1]>=k[index]&&k[right1]>=k[index]) {                     map.put(index, 1);                 }else {                     if(k[left1]>=k[index]&&k[index]>k[right1]) {                         if(map.get(right1)!=null) {                                 map.put(index, map.get(right1)+1);                         }                     }else {                         if(k[left1]<k[index]&&k[index]<=k[right1]) {                             if(map.get(left1)!=null) {                                 map.put(index, map.get(left1)+1);                             }                         }else {                             if(k[index]>k[left1]&&k[index]>k[right1]) {                                 if(map.get(left1)!=null&&map.get(right1)!=null) {                                     int max=map.get(left1)>map.get(right1)?map.get(left1)+1:map.get(right1)+1;                                     map.put(index, max);                                 }                             }                         }                     }                 }                 //向左循环遍历                 index=left1;             }             int count=0;             for(int i:map.values())                 count+=i;             System.out.println(count);                  }     public static int left(int index,int len) {         return (index+len-1)%len;     }     public static int right(int index,int len) {         return (index+1)%len;     }     /**      * 获取原始数组最小的数的位置      * @param k      * @return      */     public static int minIndex(int k[]) {         int index =0;         int min=k[0];         int len=k.length;         for(int i=0;i<len;i++) {             if(min>k[i]) {                 min=k[i];                 index=i;             }         }         return index;     } } 上午把题目理解错了,以为分数相等的时候,奖品应该也是一样的,下午重新做了一遍,不知道这样对不对。。。
点赞 评论

相关推荐

04-28 03:25
门头沟学院 Java
给我面没招了,发点面经攒攒人品~1.实习拷打2.论文拷打3.毕业是否有发表论文的要求?4.你自己有没有准备要发表论文?5.请详细聊一聊你的项目经历。你可以先讲一下"生活优选"这个项目是怎么做的。6.这个项目是基于某个开源项目做了二次开发,还是从零开始搭建的?7.请讲一下这个项目的整体架构是怎样的。8.你觉得这个项目中最有挑战性或者最难的地方是哪里?9.你这个服务是分布式的,还是单机部署的?10.你最初在MySQL中实现秒杀逻辑时,具体是用什么SQL语句来保证不超卖和一人一单的?11.为什么你认为MysqI不能保证原子性?12.如果使用update&nbsp;table&nbsp;set&nbsp;stock=stock-1wherestock&gt;0,这个语句本身是原子性的,为什么你会觉得它无法防止超卖?13.你在Redis中是如何实现秒杀逻辑的?具体用了什么数据结构或脚本?14.既然你的系统是单机部署,为什么不在JVM内存中使用本地锁,而要去使用Redis增加额外的开销和复杂度?15.你之前面试过哪些公司或团队?是什么方向的?16.你这个项目是如何部署的?17.有没有尝试过部署到云服务器上?18.是否使用过Docker或Kubernetes等容器技术?你对此有什么了解?19.你在项目中使用了乐观锁和悲观锁来解决订单支付与关单的并发问题,请详细讲一下具体是如何实现的。20.悲观锁在数据库层面如何显式加锁?21.乐观锁和悲观锁分别适用于什么场景?有没有选择的原则?
点赞 评论 收藏
分享
05-06 20:30
门头沟学院 Java
📍面试公司:阿里平头哥🕐面试时间:半个小时💻面试岗位:AI应用研发工程师❓面试问题:自我介绍介绍第一个项目讲一下你在这个项目中主要负责的部分、完成的任务,以及遇到什么难点,是怎么解决的?为什么选择用&nbsp;Redis&nbsp;做分布式锁?Redis&nbsp;锁在高并发情况下遇到了什么问题?追问:&nbsp;具体的锁误删场景是怎么发生的?追问:&nbsp;A如果在中途&nbsp;Retry&nbsp;了,还需要重新拿锁吗?Timeout&nbsp;以后锁已经释放了,Java&nbsp;进程还在进行怎么办?追问:&nbsp;既然这个场景下&nbsp;Redis&nbsp;setnx&nbsp;不太适合,最后是怎么解决这个原子性问题的?介绍第二个项目追问:&nbsp;这个项目是你自己业余时间做的,还是有真实用户来用?介绍一下&nbsp;RAG的原理?它怎么满足你这个项目的需求?RAG&nbsp;检索的具体链路是怎么设计的?追问:&nbsp;简历上写提升了&nbsp;97%&nbsp;的召回率,这个具体是怎么算出来的?你这个大模型服务目前是怎么部署的?HR&nbsp;/&nbsp;软性问题学校实验室经历:读研期间有没有做一些研究工作?导师/实验室那边的方向是什么?职业规划实习相关:什么时候可以入职?能实习多长时间?反问🙌面试感想:面试体验很差,首先面试官全程不开摄像头,然后没有手撕环节也很奇怪,最后就是反问环节问到部门在做什么,回复是'不方便透露',,,那其实就没什么可问的了。
查看17道真题和解析
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务