- 专栏内容:力扣刷题
- ⛪个人主页:子夜的星的主页
- 座右铭:前路未远,步履不停
题目链接:将找到的值乘以 2
给你一个整数数组 nums ,另给你一个整数 original ,这是需要在 nums 中搜索的第一个数字。接下来,你需要按下述步骤操作:如果在 nums 中找到 original ,将 original 乘以2,得到新 original(即,令 original = 2 * original
)。否则,停止这一过程。只要能在数组中找到新 original ,就对新 original 继续重复这一过程。返回 original 的最终值。
目标是在给定的数组中搜索第一个等于original的数字,并不断将original乘以2,直到在数组中找不到新的original为止。最终返回最终的original值。
这个问题可以通过简单的模拟来解决,当找到与original相等的元素时,我们就更新这个original的值,并继续遍历数组以查找下一个与新original相等的元素。这个过程会一直重复,直到在数组中找不到新的original为止。
class Solution {
public int findFinalValue(int[] nums, int original) {
int index = 0;
while (index < nums.length) {
if (nums[index] == original) { //(1)
original *= 2;
index = 0;
} else {
index++; //(2)
}
}
return original;
}
}
(1)如果相等,将original的值乘以2,并将index重置为0,以便重新从数组的开头开始搜索。
(2)如果不相等,将index增加1,继续向后搜索。