1920. 基于排列构建数组
数组 基于 构建 排列
2023-09-14 09:06:52 时间
1920. 基于排列构建数组
给你一个 从 0 开始的排列 nums(下标也从 0 开始)。请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans[i] = nums[nums[i]] 。返回构建好的数组 ans 。
从 0 开始的排列 nums 是一个由 0 到 nums.length - 1(0 和 nums.length - 1 也包含在内)的不同整数组成的数组。
示例 1:
输入:nums = [0,2,1,5,3,4]
输出:[0,1,2,4,5,3]
解释:数组 ans 构建如下:
ans = [nums[nums[0]], nums[nums[1]], nums[nums[2]], nums[nums[3]], nums[nums[4]], nums[nums[5]]]
= [nums[0], nums[2], nums[1], nums[5], nums[3], nums[4]]
= [0,1,2,4,5,3]
示例 2:
输入:nums = [5,0,1,2,3,4]
输出:[4,5,0,1,2,3]
解释:数组 ans 构建如下:
ans = [nums[nums[0]], nums[nums[1]], nums[nums[2]], nums[nums[3]], nums[nums[4]], nums[nums[5]]]
= [nums[5], nums[0], nums[1], nums[2], nums[3], nums[4]]
= [4,5,0,1,2,3]
这一题就很简单了,按照公式套用一下就可以了,解题代码如下:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* buildArray(int* nums, int numsSize, int* returnSize){
int *re=(int *)malloc(sizeof(int)*numsSize);
*returnSize=numsSize;
for(int i=0;i<numsSize;i++){
re[i]=nums[nums[i]];
}
return re;
}
相关文章
- ExcelVBA一维数组的读取、输出、合并
- 2022-11-03:给定一个数组arr,和一个正数k 如果arr[i] == 0,表示i这里既可以是左括号也可以是右括号, 而且可以涂上1~k每一种颜色 如果
- 数组模拟队列思路
- 基于数组实现队列 根据队列特性实现击鼓传花
- 【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] -> int array[][3] -> int (*array)[3] )
- mongoDB 多重数组查询(AngularJS绑定显示 nodejs)
- 对多个有序数组,实现归并操作详解编程语言
- PHP数据集构建JSON格式及新数组的方法
- java数组排序示例分享