leetcode 2154

2154: 将找到的值乘以2

返回不在 nums 中的最小的 original*2^k,其中 k 是非负整数。

思路1:枚举

复制代码
class Solution {
public:
    int findFinalValue(vector<int>& nums, int original) {
        unordered_set<int> st(nums.begin(), nums.end());
        while (st.contains(original)){
            original *= 2;
        }          
        return original;
    }
};

思路2:只记录所有可能值

哈希集合记录的元素可以更少,只需要记录符合 original*2^k 的元素。

设 x=nums[i],如果 x=original*2^k,那么:

  • x 是 original 的倍数。

  • x/original 是2的幂。

    class Solution {
    public:
    int findFinalValue(vector<int>& nums, int original) {
    unordered_set<int> st;
    for(int x :nums){
    int k=x/original;
    if(x%original==0 && (k&(k-1))==0){
    st.insert(x);
    }
    }
    while(st.contains(original)){
    original*=2;
    }

    复制代码
          return original;
      }

    };

相关推荐
dyxal12 小时前
Louvain 算法:让网络自己“报团取暖”的发现者
开发语言·算法
计算机安禾12 小时前
【c++面向对象编程】第41篇:函数模板与类模板:泛型编程的基石
开发语言·c++·算法
SilentSamsara12 小时前
属性查找顺序:实例 → 类 → 父类的完整 MRO
开发语言·python·算法·青少年编程
不知名的老吴12 小时前
浅谈:树形动态规划中的换根技巧
算法·动态规划
一条大祥脚13 小时前
2021-2022 ICPC Southwestern Europe Regional Contest
算法·深度优先·图论
罗湖老棍子13 小时前
The xor-longest Path(信息学奥赛一本通- P1478)
算法·字符串·字典树··lca最近公共祖先
whuhewei13 小时前
React diff算法为什么是DFS,不是BFS
算法·react.js·深度优先
EdmundXjs14 小时前
大模型核心概念解读
人工智能·算法
lookaroundd14 小时前
llm-compressor 普通量化调用链分析
python·算法
小羊在睡觉14 小时前
力扣239. 滑动窗口最大值
数据结构·后端·算法·leetcode·go