一些感想
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
前言
企图使用暴力解法,未遂,超出时间限制。
解答区方法一是新建一个数组;方法二是双指针
知识点
对于vector容器来说,有以下函数
- iterator insert(pos,elem)
在迭代器 pos 指定的位置之前插入一个新元素elem,并返回表示新插入元素位置的迭代器。
vector< int> demo{1,2};
//第一种格式用法
demo.insert(demo.begin() + 1, 3);
//{1,3,2}
- erase(pos)
删除 vector 容器中 pos 迭代器指定位置处的元素,并返回指向被删除元素下一个位置元素的迭代器。该容器的大小(size)会减 1,但容量(capacity)不会发生改变。
vector< int>demo{ 1,2,3,4,5 };
auto iter = demo.erase(demo.begin() + 1);//删除下标为“1”的元素,其值是 2,demo现在为{1,3,4,5}
//iter迭代器指向元素 3
cout << endl << *iter << endl;//输出 3
- erase(beg,end)
删除 vector 容器中位于迭代器 [beg,end)指定区域内的所有元素,并返回指向被删除区域下一个位置元素的迭代器。该容器的大小(size)会减小,但容量(capacity)不会发生改变。
vector< int> demo{ 1,2,3,4,5 };
//删除 2、3
auto iter = demo.erase(demo.begin()+1, demo.end() - 2);//demo现在为{1,4,5}
- swap函数
交换两个数字的值
使用swap函数需要#include< algorithm>头文件
具体函数参见连接
vector删除元素函数
思路
双指针,原地交换
再见
这段时间太累了,前几天的拖到了3月12日才写完,但是终于写完了。
那么,下一篇再见啦!