网站搭建合同范本中铁建设集团门户网app
网站搭建合同范本,中铁建设集团门户网app,wordpress连接微博设置密码,公司名字大全三个字给你一个整数数组 nums #xff0c;和一个表示限制的整数 limit#xff0c;请你返回最长连续子数组的长度#xff0c;该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。
如果不存在满足条件的子数组#xff0c;则返回 0 。
示例 1#xff1a;
输入#…给你一个整数数组 nums 和一个表示限制的整数 limit请你返回最长连续子数组的长度该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。
如果不存在满足条件的子数组则返回 0 。
示例 1
输入nums [8,2,4,7], limit 4 输出2 解释所有子数组如下 [8] 最大绝对差 |8-8| 0 4. [8,2] 最大绝对差 |8-2| 6 4. [8,2,4] 最大绝对差 |8-2| 6 4. [8,2,4,7] 最大绝对差 |8-2| 6 4. [2] 最大绝对差 |2-2| 0 4. [2,4] 最大绝对差 |2-4| 2 4. [2,4,7] 最大绝对差 |2-7| 5 4. [4] 最大绝对差 |4-4| 0 4. [4,7] 最大绝对差 |4-7| 3 4. [7] 最大绝对差 |7-7| 0 4. 因此满足题意的最长子数组的长度为 2 。
代码
class Solution {public int longestSubarray(int[] nums, int limit) {int len0,res-1,s0;LinkedListInteger maxnew LinkedList();LinkedListInteger minnew LinkedList();for(int i0;inums.length;i){while (!max.isEmpty()nums[max.getLast()]nums[i])//单调递减的最大值队列max.removeLast();max.add(i);while (!min.isEmpty()nums[min.getLast()]nums[i])//单调递增的最小值队列min.removeLast();min.add(i);while (!max.isEmpty()!min.isEmpty()nums[max.getFirst()]-nums[min.getFirst()]limit)//将左边界缩小{if(max.getFirst()s) max.removeFirst();//移除不再左边界范围的值if(min.getFirst()s) min.removeFirst();//移除不再右边界范围的值s;}res Math.max(res,i-s1);}return res;}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89343.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!