zoukankan      html  css  js  c++  java
  • Leetcode-927 Three Equal Parts(三等分)

     1 class Solution
     2 {
     3     private:
     4         vector<int> result;
     5     public:
     6         vector<int> threeEqualParts(vector<int>& A)
     7         {
     8             int oneSum = 0;
     9             for(auto d:A)
    10             {
    11                 if(d==1)
    12                     oneSum ++;
    13             }
    14             
    15             if(oneSum==0)
    16             {
    17                 result.push_back(0);
    18                 result.push_back(A.size()-1);
    19                 return result;
    20             }
    21 
    22             if(oneSum % 3 != 0)
    23             {
    24                 result.push_back(-1);
    25                 result.push_back(-1);
    26                 return result;
    27             }
    28 
    29             int tmpOneSum = 0;
    30             int i;
    31             for(i = A.size()-1; i >= 0; i --)
    32             {
    33                 if(A[i]==1)
    34                     tmpOneSum ++;
    35                 if(tmpOneSum == oneSum/3)
    36                 {
    37                     break;
    38                 }
    39             }
    40             
    41             vector<int> part3;
    42             for(; i < A.size(); i ++)
    43                 part3.push_back(A[i]);
    44 
    45             for(i = 0; A[i]==0; i ++)
    46                 ;
    47             int part3End = 0;
    48             
    49             for(int j = i; i-j < part3.size(); i ++)
    50             {
    51                 if(A[i]!=part3[part3End++])
    52                 {
    53                     result.push_back(-1);
    54                     result.push_back(-1);
    55                     return result;
    56                 }
    57             }
    58             
    59             int resultPart = i-1;
    60             for(; A[i]==0; i ++)
    61                 ;
    62             
    63             part3End = 0;
    64             for(int j = i; i-j < part3.size(); i ++)
    65             {
    66                 if(A[i]!=part3[part3End++])
    67                 {
    68                     result.push_back(-1);
    69                     result.push_back(-1);
    70                     return result;
    71                 }
    72             }
    73             
    74             result.push_back(resultPart);
    75             result.push_back(i);
    76 
    77             return result;
    78         }
    79 };
  • 相关阅读:
    关于Redis的介绍,使用以及集群
    关于RESTful详解
    关于Nginx——反向代理
    关于RabbitMQ
    关于Nginx——负载均衡
    关于Nginx——配置虚拟主机
    StringBuffer是字符串缓冲区
    数组的查找操作
    获取任意年的二月有多少天
    快速排序算法
  • 原文地址:https://www.cnblogs.com/Asurudo/p/9838745.html
Copyright © 2011-2022 走看看