当前位置:首页 » 《关注互联网》 » 正文

【算法学习】1929. 数组串联(java / c / c++ / python / go / rust)_二当家的白帽子

16 人参与  2021年09月12日 12:23  分类 : 《关注互联网》  评论

点击全文阅读


非常感谢你阅读本文~
欢迎【👍点赞】【⭐收藏】【📝评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子 https://le-yi.blog.csdn.net/ 博客原创~


文章目录

  • 1929. 数组串联:
  • 样例 1
  • 样例 2
  • 提示
  • 分析
  • 题解
    • java
    • c
    • c++
    • python
    • go
    • rust
  • 原题传送门


1929. 数组串联:

给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有 0 <= i < n 的 i ,满足下述所有要求:

ans[i] == nums[i]
ans[i + n] == nums[i]
具体而言,ans 由两个 nums 数组 串联 形成。

返回数组 ans 。

样例 1

输入:
	nums = [1,2,1]
输出:
	[1,2,1,1,2,1]
解释:
	数组 ans 按下述方式形成:
	ans = [nums[0],nums[1],nums[2],nums[0],nums[1],nums[2]]
	ans = [1,2,1,1,2,1]

样例 2

输入:
	nums = [1,3,2,1]
输出:
	[1,3,2,1,1,3,2,1]
解释:
	数组 ans 按下述方式形成:
	ans = [nums[0],nums[1],nums[2],nums[3],nums[0],nums[1],nums[2],nums[3]]
	ans = [1,3,2,1,1,3,2,1]

提示

  • n == nums.length
  • 1 <= n <= 1000
  • 1 <= nums[i] <= 1000

分析

  1. 参数长度不可变
  • 按着题意,直接新建2倍大数组,然后循环2 * n次,按顺序赋值。
  • 由于结果是入参重复2次,所以也可以直接循环n次,每次赋值2个结果。
  1. 参数长度可变
  • 直接在参数后面,重复一遍自己,然后返回即可。

题解

java

public class Solution {
    public int[] getConcatenation(int[] nums) {
        // 原数组长度
        final int n   = nums.length;
        // 结果数组长度
        final int m   = n * 2;
        int[]     ans = new int[m];

        for (int i = 0; i < m; ++i) {
            ans[i] = nums[i % n];
        }

        return ans;
    }
}
class Solution {
    public int[] getConcatenation(int[] nums) {
        // 原数组长度
        final int n   = nums.length;
        int[]     ans = new int[n * 2];

        for (int i = 0; i < n; ++i) {
            ans[i] = ans[i + n] = nums[i];
        }

        return ans;
    }
}

c

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* getConcatenation(int* nums, int numsSize, int* returnSize){
    int *ans = malloc(sizeof(int) * numsSize * 2);
    for (int i = 0; i < numsSize; ++i) {
        ans[i] = ans[i + numsSize] = nums[i];
    }
    *returnSize = numsSize * 2;
    return ans;
}

c++

class Solution {
public:
    vector<int> getConcatenation(vector<int>& nums) {
        nums.insert(nums.end(), nums.begin(), nums.end());
        return nums;
    }
};

python

class Solution:
    def getConcatenation(self, nums: List[int]) -> List[int]:
        nums.extend(nums)
        return nums

go

func getConcatenation(nums []int) []int {
    return append(nums, nums...)
}

rust

impl Solution {
    pub fn get_concatenation(nums: Vec<i32>) -> Vec<i32> {
        let mut nums = nums;
        for i in 0..nums.len() {
            nums.push(nums[i]);
        }
        nums
    }
}

原题传送门



点击全文阅读


本文链接:http://m.zhangshiyu.com/post/27621.html

数组  长度  串联  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 沈静怡傅励行+后续+结局(傅励行沈静怡)列表_沈静怡傅励行+后续+结局(傅励行沈静怡)沈静怡傅励行+后续+结局在线
  • 非典时,我被妻子的白月光误诊遗弃在病房节选角色羁绊特辑‌_田越苏雅白月光角色专属支线试读入口
  • 往梦难复温沈淮霆宋思予_往梦难复温沈淮霆宋思予
  • 霜天空巷旧人归后续更新戚南枝霍涧山完本_霜天空巷旧人归后续更新(戚南枝霍涧山)
  • 傅景深沈晚栀(沈晚栀傅景深+后续+结局)结局_(傅景深沈晚栀沈晚栀傅景深+后续+结局全书结局)结局列表_笔趣阁(傅景深沈晚栀)
  • 霜天空巷旧人归全书+后续+结局(戚南枝霍涧山)列表_霜天空巷旧人归(戚南枝霍涧山)霜天空巷旧人归全书+后续+结局在线
  • (番外)+(结局)江晚烟陆聿我终于失去了你全书+后续(江晚烟陆聿)免费_(江晚烟陆聿我终于失去了你全书+后续)列表_笔趣阁(江晚烟陆聿)
  • 谢长乐肖风行兰因絮果,爱恨全如玉碎全书+结局+番外列表_笔趣阁(兰因絮果,爱恨全如玉碎谢长乐肖风行全书+结局+番外)
  • 「爱恨随风,六十五岁的我离婚了」大结局_「李明小孙女婆婆」小说章节试读
  • 长恨歌新鲜出炉(宋可卿谢景御)_长恨歌新鲜出炉
  • 宋可卿谢景御(长恨歌结局+番外)完结_(宋可卿谢景御)列表_笔趣阁(长恨歌结局+番外)
  • 雪覆长街情惘然,瑶光沈覆_雪覆长街情惘然,瑶光沈覆

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1