标签:59 Offer int 最大值 num dong kou ArrayList size
import java.util.ArrayList; public class Solution { public ArrayList<Integer> maxInWindows(int [] num, int size) { //结果集 ArrayList<Integer> res = new ArrayList<>(); if(num.length < size || size <= 0) return res; int left = 0; int right = size - 1; while(right < num.length){ //先将窗口最左边的元素 给到max int max = num[left]; //遍历窗口的每一个元素,找到最大值 for(int i = left;i <= right; i++){ if(max < num[i]){ max = num[i]; } } //将当前窗口的最大值加入结果集 res.add(max); //整体往前滑 left++; right++; } return res; } }
这样的话每次都要在窗口中找最大值,时间复杂度较高,剑指大神 Krahets 给出了O(1)时间的效率,截图如下
https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/solution/mian-shi-ti-59-i-hua-dong-chuang-kou-de-zui-da-1-6/
标签:59,Offer,int,最大值,num,dong,kou,ArrayList,size 来源: https://www.cnblogs.com/peanut-zh/p/14151902.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。