给你一个数字数组 digits,你需要从中选择三个数字组成一个三位偶数,你的任务是求出 不同三位偶数的数量。
注意 :每个数字在三位偶数中都只能使用 一次 ,并且 不能有前导零。
示例 1:
输入: digits = 1,2,3,4
输出: 12
解释: 可以形成的 12 个不同的三位偶数是 124,132,134,142,214,234,312,314,324,342,412 和 432。注意,不能形成 222,因为数字 2 只有一个。
示例 2:
输入: digits = 0,2,2
输出: 2
解释: 可以形成的三位偶数是 202 和 220。注意,数字 2 可以使用两次,因为数组中有两个 2 。
示例 3:
输入: digits = 6,6,6
输出: 1
解释: 只能形成 666。
示例 4:
输入: digits = 1,3,5
输出: 0
解释: 无法形成三位偶数。
提示:
3 <= digits.length <= 100 <= digits[i] <= 9
分析:暴力枚举所有可能产生的三位数,满足第一位不能为 0,最后一位必须是偶数的数才计数。
cpp
int totalNumbers(int* digits, int digitsSize) {
int cnt=0,flag[1000]={0};
for(int i=0;i<digitsSize;++i)
{
if(!digits[i])continue;
for(int j=0;j<digitsSize;++j)
{
if(j==i)continue;
for(int k=0;k<digitsSize;++k)
{
if(digits[k]&1||k==j||k==i)continue;
int num=digits[i]*100+digits[j]*10+digits[k];
if(!flag[num])flag[num]=1,cnt++;
}
}
}
return cnt;
}