记录刷题的日子10(2023.3.10)

一些感想

剑指 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日才写完,但是终于写完了。
那么,下一篇再见啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值