• Leetcode-1004 Max Consecutive Ones III(最大连续1的个数 III)


     1 #define pb push_back
     2 #define maxSize 3939
     3 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
     4 
     5 class Solution
     6 {
     7     public:
     8         int longestOnes(vector<int>& A, int K)
     9         {
    10             vector<int> v;
    11             for(int i = 0;i < A.size();)
    12             {
    13                 int cnt = 0;
    14                 while(i < A.size() && A[i]==1)
    15                 {
    16                     cnt ++;
    17                     i ++;
    18                 }
    19                 v.pb(cnt);
    20                 cnt = 0;
    21                 while(i < A.size() && A[i]==0)
    22                 {
    23                     cnt ++;
    24                     i ++;
    25                 }
    26                 v.pb(cnt);
    27             }
    28             int rnt = 0;
    29             for(int i = 0;i < v.size();i += 2)
    30             {
    31                 int tmpk = K;
    32                 int tmprnt = v[i];
    33                 int j = i;
    34                 while(tmpk)
    35                 {
    36                     if(tmpk>=v[j+1]&&j+2<v.size())
    37                     {
    38                         tmprnt += v[j+2]+v[j+1];
    39                         tmpk -= v[j+1];
    40                         j += 2;
    41                     }
    42                     else
    43                     {
    44                         tmprnt += tmpk;
    45                         break;
    46                     }
    47                     
    48                 }
    49                 rnt = max(rnt,tmprnt);
    50             }
    51             int sz = A.size();
    52             return min(rnt,sz);
    53         }
    54 };

    这题也是乱搞,没有前几周的Ⅱ难,只要对每个连续的数字1块进行遍历,看看以他为头能往后延长多少就行,算是个贪心吧。这么贪的理由是,最后形成的最长1串必定包含某一个原来的数字1块,并且以这一个数字1块开头。

  • 相关阅读:
    【shell】日志切割
    【PHP】SVN版本差异导出
    Linux服务器上安装JDK
    Linux 下node环境安装
    CentOS 7.3安装mariadb
    Centos 7.4 自动初始化docker环境,配置docker镜像仓库
    Shell 模板 (Yes or NO)
    Linux修改时间和时区
    lvm方式挂载盘及扩容
    安装ansible
  • 原文地址:https://www.cnblogs.com/Asurudo/p/10464619.html
Copyright © 2020-2023  润新知