手撕第二题只遍历一遍的话感觉可以用单调队列解决 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

相关推荐

02-16 01:39
南昌大学 Java
重剑Ds:感觉不太可能 后端都减飞了 根本不缺人
点赞 评论 收藏
分享
钱嘛数字而已:辅导员肯定不能同意,不然你出事了,他要承担责任。但是,脚和脑子都长在你自己身上,使用它还需要向辅导员报告么? 辅导员必须按流程拒绝你,然后你拿出成年人的态度,做自己的选择。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务