输入一个整数数组 digits ,数组长度不超过10,其中每个元素是一个数字(0-9)。数组中可能存在重复元素。你需要找出 所有 满足下述条件且 互不相同 的整数: 该整数由 digits 中的三个元素按 任意 顺序 依次连接 组成。 该整数不含 前导零,即百位数不为0 该整数是一个 偶数 例如,给定的 digits 是 [1, 2, 3] ,整数 132和 312 满足上面列出的全部条件。 如果不存在偶数则返回空数组 将找出的所有互不相同的整数按 递增顺序 排列,并以数组形式返回,返回的数组名称为res。
时间: 2024-02-06 16:02:02 浏览: 116
c代码-读取一个正整数,显示其位数。
5星 · 资源好评率100%
好的,我明白了你的问题。以下是解决方案:
```python
class Solution:
def threeDigits(self, digits: List[int]) -> List[int]:
res = []
for i in range(len(digits)):
for j in range(len(digits)):
if i == j:
continue
for k in range(len(digits)):
if i == k or j == k:
continue
num = digits[i] * 100 + digits[j] * 10 + digits[k]
if num % 2 == 0:
res.append(num)
return sorted(list(set(res)))
```
这个问题可以通过暴力枚举来解决。我们遍历数组中的所有三个元素的组合,通过计算得到整数,然后判断整数是否符合条件,如果符合则加入到结果数组中。最后返回结果数组即可。
需要注意的是,我们需要去重并且按照递增顺序排列结果数组。可以通过将结果数组转化为集合再转化为列表的方式来去重,然后使用Python内置的sorted()函数进行排序。
阅读全文