LeetCode 1409. 查询带键的排列缩略图

给你一个待查数组 queries ,数组中的元素为 1 到 m 之间的正整数。 请你根据以下规则处理所有待查项 queries[i](从 i=0 到 i=queries.length-1):

  • 一开始,排列 P=[1,2,3,...,m]
  • 对于当前的 i ,请你找出待查项 queries[i] 在排列 P 中的位置(下标从 0 开始),然后将其从原位置移动到排列 P 的起始位置(即下标为 0 处)。注意, queries[i] 在 P 中的位置就是 queries[i] 的查询结果。

请你以数组形式返回待查数组  queries 的查询结果。

1409. 查询带键的排列 – 力扣(Leetcode)

LeetCode 1409. 查询带键的排列插图
OpenCV步步精深-可心科创工作室
LeetCode 1409. 查询带键的排列插图1
OpenCV步步精深-可心科创工作室

思路:

根据题意直接暴力破解就行。

python3实现:

class Solution:
    def processQueries(self, queries: List[int], m: int) -> List[int]:
        # 根据题意来就行了。
        P = [i for i in range(1, m+1)]
        result = []

        s = 0
        while s <= len(queries) - 1:
            target = queries[s]
            target_idx_in_P = P.index(target)
            result.append(target_idx_in_P)
            part_1 = []
            tmp = [part_1.append(each) for each in P if each != target]
            part_2 = [target]
            P = part_2 + part_1
            s += 1

        return result
LeetCode 1409. 查询带键的排列插图2
OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注