您的位置:首页 > 健康 > 养生 > 力扣1124.表现良好的最长时间段

力扣1124.表现良好的最长时间段

2024/12/23 10:06:12 来源:https://blog.csdn.net/Pisasama/article/details/140132183  浏览:    关键词:力扣1124.表现良好的最长时间段

力扣1124.表现良好的最长时间段

  • 哈希表存最小的下标

    • 当s[i] > 0 那么他到头可以构成一个合法时间段
    • 否则 找到之前的 s[i] - 1 的下标:
      • 因为连续的前缀和一定只相差1
      • 若想算更小的s[i] - 2,s[i] - 3…
      • 一定会先算到s[i] - 1
      • 那么这些更小数必然在 s[i]−1 首次出现的位置的右边
  •   class Solution {public:int longestWPI(vector<int>& hours) {int n = hours.size();vector<int> s(n+1);for(int i=0;i<n;i++){s[i+1] = s[i];s[i+1] += hours[i] > 8 ? 1 : -1;cout<<s[i+1]<<endl;}unordered_map<int,int> cnt;int res=0;for(int i=0;i<=n;i++){if(s[i] > 0) res = max(res,i);if(cnt.find(s[i] - 1) != cnt.end())res = max(res,i - cnt[s[i] - 1]);if(cnt.find(s[i]) == cnt.end())cnt[s[i]] = i;}return res;}};
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com