手撕第二题只遍历一遍的话感觉可以用单调队列解决 code: public static int MAX = 100001; public static int [] maxDeque = new int[MAX]; public static int [] minDeque = new int[MAX]; public static int maxHead,maxTail; public static int minHead,minTail; public static int method(int [] nums){ int n = nums.length; int ans = Integer.MIN_VALUE; for(int i = 0;i < n;i ++){ while(maxHead < maxTail && nums[maxDeque[maxTail - 1]] < nums[i]){ maxTail--; } maxDeque[maxTail++] = i; while(minHead < minTail && nums[minDeque[minTail - 1]] > nums[i]){ minTail--; } minDeque[minTail++] = i; int max = nums[maxDeque[maxHead]] - nums[minDeque[minHead]]; ans = Math.max(ans,max); } return ans; }
点赞 1

相关推荐

这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 17:10
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务