[打卡帖]《九日集训》诺亚方舟(第四天)——赶不上明天

赶不上明天 2021-12-13 22:18:03

  看了很多指针的解法,但是自己指针掌握的太烂了,写的时候报了很多错。所以就用了其他的方法,大多是对vector的操作。等我摸清楚指针之后,会在自己的博客中专门更一篇这几道题的指针解法。

1470. 重新排列数组

这一题就是对vector 的插入操作

#include<vector>
class Solution {
public:
    vector<int> shuffle(vector<int>& nums, int n) {
        vector<int> ans;
        for(int i = 0; i < n; i ++){
            ans.push_back(nums[i]);//在数组最后添加num[i]
            ans.push_back(nums[n + i]);
        }
        return ans;
    }
};

1929. 数组串联

两次遍历并push_back

class Solution {
public:

    vector<int> getConcatenation(vector<int>& nums) {
        vector<int> ans;
        int size = nums.size();
        for(int i = 0; i < size; i++) ans.push_back(nums[i]);
        for(int i = 0; i < size; i++) ans.push_back(nums[i]);
        return ans;
    }
};

1920. 基于排列构建数组

这一题也是在数组最后依次添加就好了

class Solution {
public:
    vector<int> buildArray(vector<int>& nums) {
        vector<int> ans;
        int size = nums.size();
        for(int i = 0; i < size; i++) ans.push_back(nums[nums[i]]);
        return ans;
    }
};

1480. 一维数组的动态和

更改数组本身

class Solution {
public:
    vector<int> runningSum(vector<int>& nums) {
        int size = nums.size();
        for(int i = 1; i < size; i++) {
            nums[i] += nums[i - 1];//前面加上自己所有元素的和
        }
        return nums;
    }
};

剑指 Offer 58 - II. 左旋转字符串

这题是字符串的截取和拼接

class Solution {
public:
    string reverseLeftWords(string s, int n) {
        string a1 = s.substr(0, n);
        string a2 = s.substr(n);
        return a2 + a1;
    }
};

 

...全文
120 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,081

社区成员

发帖
与我相关
我的任务
社区描述
学习「 算法 」的捷径就是 「 题海战略 」,社区由「 夜深人静写算法 」作者创建,三年ACM经验,校集训队队长,亚洲区域赛金牌,世界总决赛选手。社区提供系统的训练,答疑解惑,面试经验,大厂内推等机会
社区管理员
  • 英雄哪里出来
  • 芝麻粒儿
  • Amy卜bo皮
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

QQ群:480072171

英雄算法交流 8 群

 

试试用AI创作助手写篇文章吧