给你一个整数数组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

Python:

class Solution:
    def findFinalValue(self, nums: List[int], original: int) -> int:
        flag = [False for i in range(10001)]
        for item in nums:
            flag[item] = True
        while flag[original]:
            original *= 2
        return original

Java:

class Solution {
    public int findFinalValue(int[] nums, int original) {
        boolean[] flag = new boolean[1001];
        for(int n: nums)
        {
            flag[n] = true;
        }
        while(original < 1001 && flag[original])
        {
            original *= 2;
        }
        return original;
    }
}
最后修改日期: 2022年1月31日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。