当前位置: 首页 > article >正文

C/C++---------------LeetCode第2154. 将找到的值乘以 2

将找到的值乘以 2

  • 题目及要求
  • 哈希表
  • 递归

题目及要求

给你一个整数数组 nums ,另给你一个整数 original ,这是需要在 nums 中搜索的第一个数字。

接下来,你需要按下述步骤操作:

如果在 nums 中找到 original ,将 original 乘以 2 ,得到新 original(即,令 original = 2 * original)。
否则,停止这一过程。
只要能在数组中找到新 original ,就对新 original 继续 重复 这一过程。
返回 original 的 最终 值。
示例 1:
输入:nums = [5,3,6,1,12], original = 3
输出:24
解释:

  • 3 能在 nums 中找到。3 * 2 = 6 。
  • 6 能在 nums 中找到。6 * 2 = 12 。
  • 12 能在 nums 中找到。12 * 2 = 24 。
  • 24 不能在 nums 中找到。因此,返回 24 。
    示例 2:

输入:nums = [2,7,9], original = 4
输出:4
解释:

  • 4 不能在 nums 中找到。因此,返回 4 。

提示:

1 <= nums.length <= 1000
1 <= nums[i], original <= 1000

哈希表

思路:将nums全部存入hash,查找original,找到了就*2,直到找不到original

class Solution {
public:
    int findFinalValue(vector<int>& nums, int original) {
    unordered_set<int>hash(nums.begin(),nums.end());
      while(hash.count(original)){
          original*=2;
      }
      return original;
    }
};

递归

思路:循环,调用 findFinalValue 函数递归地查找更新,直到 original 不再出现在 nums 中为止。

class Solution {
public:
    int findFinalValue(vector<int>& nums, int original) {
    int n=nums.size();
    for(int i=0;i<n;++i){
        if(original==nums[i]){
            original*=2;
            original=findFinalValue(nums,original);
          }
        }
        return original;
    }
};

http://www.kler.cn/news/160394.html

相关文章:

  • 微信小程序 -- ios 底部小黑条样式问题
  • k8s中部署基于nfs的StorageClass
  • 看图学源码之 Atomic 类源码浅析二(cas + 分治思想的原子累加器)
  • 基于单片机自动饮料混合机控制系统设计
  • 【Java 基础】22 多线程线程池
  • 2022年第十一届数学建模国际赛小美赛A题翼龙如何飞行解题全过程文档及程序
  • 在github中通过action自动化部署 hugo academic theme,实现上传md文件更新博客内容
  • 华为数通---配置端口安全案例
  • 解决el-tree数据回显时子节点部分选中父节点都全选中问题
  • NFC和蓝牙在物联网中有什么意义?如何选择?
  • 华为设备使用python配置netconf 功能
  • javaee实验:文件上传及拦截器的使用
  • HarmonyOS4.0从零开始的开发教程03初识ArkTS开发语言(中)
  • RPC简介和grpc的使用
  • MySQL 添加注释(comment)
  • 二叉平衡树
  • CoDeF视频处理——视频风格转化部署使用与源码解析
  • 《Java 并发编程艺术》笔记(上)
  • 处理实时视频流:第三方美颜SDK的实时图像处理策略
  • idea开发环境配置
  • C++11改进观察者模式
  • js 将后端返回的对象转换为数组
  • VUEX使用总结
  • spark log4j日志配置
  • Amazon CodeWhisperer 正式可用, 并面向个人开发者免费开放
  • redis应用-分布式锁
  • Java - InetAddress#isReachable 方法解析
  • EPICS modbus 模块数字量读写练习
  • 分类与群组:解析分类和聚类分析技术
  • Kubernetes入门笔记——(2)k8s设计文档