📅  最后修改于: 2023-12-03 14:49:27.408000             🧑  作者: Mango
本题要求从一个给定的数组中找到原始数组,该数组是通过将前缀 P 反转后得到的。
输入数据为一个数组 arr
,该数组由原始数组的前缀 P 和其余部分组成,用一个整数 pivot
指定了前缀的长度,即 arr[:pivot]
是原始数组的前缀。
输出数据为一个数组,即原始数组。
由于给定数组是原始数组前缀的反转,因此可以通过反转给定数组的前缀,再将其余部分与前缀合并,即可得到原始数组。
具体实现方式为使用 Python 的切片操作,先将前缀反转,然后通过类似于 arr[pivot:]+reversed(arr[:pivot])
的方式将其余部分与前缀合并。
def get_original_array(arr: List[int], pivot: int) -> List[int]:
"""
从给定数组中找到原始数组,该数组是在 P 前缀反转后获得的。
"""
return arr[pivot:]+list(reversed(arr[:pivot]))
#include <vector>
using namespace std;
class Solution {
public:
vector<int> get_original_array(vector<int>& arr, int pivot) {
/**
* 从给定数组中找到原始数组,该数组是在 P 前缀反转后获得的。
*/
vector<int> original_arr(arr.begin()+pivot, arr.end());
original_arr.insert(original_arr.end(), arr.begin(), arr.begin()+pivot);
return original_arr;
}
};