• 力扣刷题(2094. 找出 3 位偶数)有点东西


    力扣icon-default.png?t=M666https://leetcode.cn/problems/finding-3-digit-even-numbers/

    给你一个整数数组 digits ,其中每个元素是一个数字(0 - 9)。数组中可能存在重复元素。

    你需要找出 所有 满足下述条件且 互不相同 的整数:

    该整数由 digits 中的三个元素按 任意 顺序 依次连接 组成。
    该整数不含 前导零
    该整数是一个 偶数
    例如,给定的 digits 是 [1, 2, 3] ,整数 132 和 312 满足上面列出的全部条件。

    将找出的所有互不相同的整数按 递增顺序 排列,并以数组形式返回。

    示例 1:

    输入:digits = [2,1,3,0]
    输出:[102,120,130,132,210,230,302,310,312,320]
    解释:
    所有满足题目条件的整数都在输出数组中列出。 
    注意,答案数组中不含有 奇数 或带 前导零 的整数

    //这一题还是挺有意思的,其实就是先存下每个数字的个数

    //然后就分为三层,第一层不能选0,所以从1开始遍历,如果nums[i]为0直接continue

    //第二层从0开始,但是要注意和第一层如果数值相同,要查看nums[i]的个数是不是大于1

    //第三层从0开始遍历偶数,但是要注意和前两层有几个重合,重合的时候要注意,i的个数是否满足要求

    1. //这一题还是挺有意思的,其实就是先存下每个数字的个数
    2. //然后就分为三层,第一层不能选0,所以从1开始遍历,如果nums[i]为0直接continue
    3. //第二层从0开始,但是要注意和第一层如果数值相同,要查看nums[i]的个数是不是大于1
    4. //第三层从0开始遍历偶数,但是要注意和前两层有几个重合,重合的时候要注意,i的个数是否满足要求
    5. class Solution {
    6. public:
    7. vector<int> findEvenNumbers(vector<int>& digits) {
    8. vector<int> nums(10,0);
    9. for(auto&k:digits){
    10. nums[k]++;
    11. }
    12. //先考虑0
    13. vector<int> ans;
    14. for(int i=1;i<10;++i){
    15. if(!nums[i])continue;
    16. for(int j=0;j<10;++j){
    17. if(!nums[j]||(i==j&&nums[i]==1))continue;
    18. int temp=i*pow(10.0,2);
    19. temp+=j*pow(10.0,1);
    20. for(int k=0;k<10;k+=2){
    21. int num_k=1;
    22. if(k==i){
    23. if(k==j){
    24. ++num_k;
    25. }
    26. ++num_k;
    27. }else if(k==j){
    28. ++num_k;
    29. }
    30. if(nums[k]continue;
    31. int val=temp;
    32. val+=k;
    33. ans.push_back(val);
    34. }
    35. }
    36. }
    37. return ans;
    38. }
    39. };

  • 相关阅读:
    ESP32开发:Clion配置IDF
    利用Gitlab进行代码的协作开发
    Layui数据表格中checkbox位置不居中
    2018年国家高级理财规划师CHFP考试取消了该怎么办?
    [附源码]Java计算机毕业设计SSM儿童成长记录与分享系统
    基于多尺度注意力网络单图像超分(MAN)
    【网安专题10.11】代码大模型的应用及其安全性研究
    每日亿题之20220904
    P1113 杂务题解
    【Make YOLO Great Again】YOLOv1-v7全系列大解析(Head篇)(尝鲜版)
  • 原文地址:https://blog.csdn.net/yanzhe1/article/details/126299929