class Solution {
public :
vector< int > plusOne ( vector< int > & digits) {
vector< int > vec;
int flag = 0 ;
int i = digits. size ( ) - 1 ;
vec. resize ( digits. size ( ) + 1 ) ;
digits[ i] = digits[ i] + 1 ;
while ( digits[ i] == 10 )
{
digits[ i] = 0 ;
-- i;
if ( i == - 1 )
{
for ( int j = 1 ; j < vec. size ( ) ; ++ j)
{
vec[ j] = digits[ j - 1 ] ;
}
vec[ 0 ] = 1 ;
flag = 1 ;
break ;
}
digits[ i] = digits[ i] + 1 ;
}
if ( flag == 1 )
return vec;
return digits;
}
} ;
class Solution {
public :
int thirdMax ( vector< int > & nums) {
int max1 = nums[ 0 ] ;
int flag1 = 0 ;
int flag2 = 0 ;
int flag3 = 0 ;
for ( int i = 0 ; i < nums. size ( ) ; ++ i)
{
if ( nums[ i] > max1)
{
max1 = nums[ i] ;
flag1 = 1 ;
}
}
int max2 = INT_MIN;
for ( int i = 0 ; i < nums. size ( ) ; ++ i)
{
if ( nums[ i] == max1)
continue ;
if ( max2 < max1 && max2 <= nums[ i] )
{
max2 = nums[ i] ;
flag2 = 1 ;
}
}
int max3 = INT_MIN;
for ( int i = 0 ; i < nums. size ( ) ; ++ i)
{
if ( nums[ i] == max1 || nums[ i] == max2)
continue ;
if ( max3 < max2 && max3 <= nums[ i] )
{
max3 = nums[ i] ;
flag3 = 1 ;
}
}
if ( flag3 == 1 )
return max3;
else
return max1;
}
} ;