码迷,mamicode.com
首页 > 其他好文 > 详细

[哈希] leetcode 1124 Longest Well-Performing Interval

时间:2020-02-08 09:49:21      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:span   前缀和   end   int   tco   http   min   +=   i++   

https://leetcode.com/problems/longest-well-performing-interval/

        将满足条件的视为+1,不满足的视为-1,计算前缀和。该题可以转换为计算和大于0的最小区间。

class Solution {
public:
    int longestWPI(vector<int>& hours) {
        unordered_map<int,int> m;
        m[0] = -1;
        int days = 0;
        int result = 0;
        for(int i = 0;i < hours.size();i++) // end
        {
            if(hours[i] > 8) days += 1;
            else days -= 1;
            if(days > 0)
            {
                result = max(result ,i + 1);
            }
            else
            {
                if(m.find(days) == m.end())
                {   
                    m[days] = i;
                }
                int expect = days - 1;
                if(m.find(expect) != m.end())
                {
                    result = max(result, i - m[expect]);
                }

            }

        }
        return result;
    }
};

 

[哈希] leetcode 1124 Longest Well-Performing Interval

标签:span   前缀和   end   int   tco   http   min   +=   i++   

原文地址:https://www.cnblogs.com/fish1996/p/12275322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!