我的创作纪念日

机缘

提示:可以和大家分享最初成为创作者的初心
例如:

  1. 实战项目中的经验分享
  2. 日常学习过程中的记录
  3. 通过文章进行技术交流

收获

提示:在创作的过程中都有哪些收获
例如:

  1. 获得了多少粉丝的关注:892
  2. 获得了多少正向的反馈,如赞:70

日常

每周都会记录


憧憬

提示:想做嵌入式ai工程师!

我昨天才发了文章,今天确实没啥好些的,主要另外一个大文章还在写,所以决定水一下。搞个每日一题。

题目:

给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。

注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。

思路:

本题的重点在于,如果为0之后,要一次性写两个0,那么如果直接写0回导致9后面那个数据被覆盖,因此我们选择插入,而不是覆盖,然后再调整数组大小。

答案:

class Solution {
public:
    void duplicateZeros(vector& arr) {
        int n = arr.size();
	for (int i = 0; i < n; i++)
	{
	      if (arr[i] == 0) {
	      arr.insert(arr.begin() + i, 0);
	      arr.resize(n);
	      i++;
	     }
	}
    }
};

你可能感兴趣的:(力扣,算法)