• 力扣刷题(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. };

  • 相关阅读:
    每天面试题,第二天 字符串相关
    同旺科技 FLUKE ADPT 隔离版发布 ---- 说明书
    聚名企服教您如何避免DNS劫持攻击?避免DNS劫持攻击方法有哪些
    云计算实验4 面向行业背景的大数据分析与处理综合实验
    【开发者必看】【push kit】推送服务典型问题合集2
    Python操作lxml库(Xpath篇)
    React@16.x(27)useCallBack
    实验9(交换综合实验)
    java 导出到excel的几种方式你要知道
    传统加密技术(恺撒+仿射)
  • 原文地址:https://blog.csdn.net/yanzhe1/article/details/126299929