向右旋转k次后查找第i个元素的程序


假设我们有一个数组nums,一个值k和另一个值i。我们必须在将nums的元素向右旋转k次后找到索引i处的元素。

因此,如果输入类似于nums = [2,7,9,8,10] k = 3 i = 2,则输出将为10,因为在第三次旋转后数组将为[9,8,10,2,7],所以现在第i个元素将为nums[2] = 10。

为了解决这个问题,我们将遵循以下步骤:

  • 对于范围0到k的r,执行:
    • 从nums中删除最后一个元素,并将该删除的元素插入到nums的第0个位置。
  • 返回nums[i]

示例

让我们看看下面的实现,以便更好地理解。

def solve(nums, k, i):
   for r in range(k):
      nums.insert(0, nums.pop())
   return nums[i]

nums = [2,7,9,8,10]
k = 3
i = 2
print(solve(nums, k, i))

输入

[2,7,9,8,10] , 3, 2

输出

10

更新于:2021年10月12日

浏览量:112

开启你的职业生涯

通过完成课程获得认证

开始学习
广告