LeetCode 5385. 双周赛第2道
原题链接
中等
作者:
贺谦
,
2020-05-03 01:23:43
,
所有人可见
,
阅读 564
AC代码
class Solution {
public:
int gogo(vector<int> S)
{
int ans = 0;
for(int i = 0; i < S.size(); i ++)
ans = ans * 10 + S[i];
return ans;
}
int maxDiff(int num)
{
vector<int> A;
vector<int> B;
while(num)
{
A.push_back(num % 10); // a0 = 8 8 2 9
num /= 10;
}
reverse(A.begin(), A.end());
B = A;
// for(int i = 0; i < A.size(); i ++)
// {
// if(A[i] == 9) continue;
// while(i < A.size() && A[i] == A[i + 1])
// {
// A[i] = 9;
// i ++;
// }
// A[i] = 9;
// break;
// }
// int a = gogo(A);
int a = 0;
int t = 0;
int _d = -1;
for(int i = 0; i < A.size(); i ++)
if(A[i] != 9)
{
_d = i;
break;
}
if(_d == -1) a = gogo(A);
else
{
t = A[_d];
for(int i = 0; i < A.size(); i ++)
if(A[i] == t) A[i] = 9;
a = gogo(A);
}
cout << a << endl;
int tt;
int _id = -1;
int bmin = 0;
if(B[0] == 1)
{
for(int i = 1; i < B.size(); i ++)
if(B[i] != 1 && B[i] != 0)
{
_id = i;
break;
}
if(_id == -1) bmin = gogo(B);
else
{
tt = B[_id];
for(int i = 1; i < B.size(); i ++)
if(B[i] == tt) B[i] = 0;
bmin = gogo(B);
}
}
else
{
tt = B[0];
for(int i = 0; i < B.size(); i ++)
if(B[i] == tt) B[i] = 1;
bmin = gogo(B);
}
cout << bmin << endl;
// for(int i = 0; i < B.size(); i ++)
// {
// if(B.size() == 1)
// {
// B[i] = 1;
// break;
// }
// vector<int> D;
// D = B;
// sort(D.begin(), D.end());
// if(D[0] == D[D.size() - 1])
// {
// vector<int> C(B.size(), 1);
// B = C;
// break;
// }
// if(B[i] == 1)
// {
// i ++;
// if(B[i] != 1 && )
// }
// }
// int b = gogo(B);
int c = a - bmin;
return c;
}
};
class Solution {
public:
int gogo(vector<int> S)
{
int ans = 0;
for(int i = 0; i < S.size(); i ++)
ans = ans * 10 + S[i];
return ans;
}
int maxDiff(int num)
{
vector<int> A;
vector<int> B;
while(num)
{
A.push_back(num % 10); // a0 = 8 8 2 9
num /= 10;
}
reverse(A.begin(), A.end());
B = A;
for(int i = 0; i < A.size(); i ++)
{
if(A[i] == 9) continue;
while(i < A.size() && A[i] == A[i + 1])
{
A[i] = 9;
i ++;
}
A[i] = 9;
break;
}
int a = gogo(A);
if(B[0] == 1)
{
for(int i = 1; i < B.size(); i ++)
{
if(B[i] != 1 && B[i] != 0)
}
}
for(int i = 0; i < B.size(); i ++)
{
if(B.size() == 1)
{
B[i] = 1;
break;
}
vector<int> D;
D = B;
sort(D.begin(), D.end());
if(D[0] == D[D.size() - 1])
{
vector<int> C(B.size(), 1);
B = C;
break;
}
if(B[i] == 1)
{
i ++;
if(B[i] != 1 && )
}
}
int b = gogo(B);
int c = a - b;
return c;
}
};
已经很晚了,早点睡哦,大佬