zoukankan      html  css  js  c++  java
  • 按既定顺序创建目标数组 (leetcode181周赛T1)

    给你两个整数数组 numsindex。你需要按照以下规则创建目标数组:

    • 目标数组 target 最初为空。
    • 按从左到右的顺序依次读取 nums[i]index[i],在 target 数组中的下标 index[i] 处插入值 nums[i]
    • 重复上一步,直到在 numsindex 中都没有要读取的元素。

    请你返回目标数组。

    题目保证数字插入位置总是存在。

    示例 1:

    输入:nums = [0,1,2,3,4], index = [0,1,2,2,1]
    输出:[0,4,1,3,2]
    解释:
    nums       index     target
    0            0        [0]
    1            1        [0,1]
    2            2        [0,1,2]
    3            2        [0,1,3,2]
    4            1        [0,4,1,3,2]
    

    示例 2:

    输入:nums = [1,2,3,4,0], index = [0,1,2,3,0]
    输出:[0,1,2,3,4]
    解释:
    nums       index     target
    1            0        [1]
    2            1        [1,2]
    3            2        [1,2,3]
    4            3        [1,2,3,4]
    0            0        [0,1,2,3,4]
    

    示例 3:

    输入:nums = [1], index = [0]
    输出:[1]
    

    提示:

    • 1 <= nums.length, index.length <= 100
    • nums.length == index.length
    • 0 <= nums[i] <= 100
    • 0 <= index[i] <= i

    四道题,会两道,第二道运行超时,就这道题通过了,太菜了,,

    思路:数组元素后移插入

     1 int* createTargetArray(int* nums, int numsSize, int* index, int indexSize, int* returnSize)
     2 {
     3     int *target;
     4     int i;
     5     
     6     target = (int *)malloc(sizeof(int) * indexSize);
     7     memset(target,0,indexSize);
     8     
     9     for(i=0; i<indexSize; i++)
    10     {
    11         if(i == 0)
    12         {
    13             target[index[i]] = nums[i];
    14         }
    15         else  //把target中的数后移
    16         {
    17             for(int j = indexSize-1; j > index[i]; j--)
    18             {
    19                 target[j] = target[j-1];
    20             }
    21             target[index[i]] = nums[i];              
    22         }
    23     
    24     }
    25     
    26     *returnSize = indexSize;
    27     return target;
    28 }
  • 相关阅读:
    POJ 2027
    POJ 2017
    重定位(转载)
    常见储存器件的分辨(RAM、SRAM、SDRAM、ROM、FLASH、Nand Flash、Nor Flash、DDR、eMMC)
    虚拟机安装配置ubuntu共享文件夹
    ARM芯片时钟体系
    串行通信协议 —— UART
    串行通信协议——基础知识
    内存地址和内存空间
    中断与异常
  • 原文地址:https://www.cnblogs.com/ZhengLijie/p/12545177.html
Copyright © 2011-2022 走看看