【剑指offer系列】 调整数组顺序使奇数位于偶数前面___14
来源:互联网 发布:c语言大小写转换代码 编辑:程序博客网 时间:2024/06/04 19:40
题目描述:
输入一个整数数组,实现一个函数来调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
分析:
单纯的只实现这道题目很简单,只需要分别从数组前后向中间遍历,遇到不合要求时就交换即可。
但是我们可以扩展这个题目,将数组顺序的调整条件变为其它任意功能。如将能被3整除的放在前半部分等。
这样我们可以将判断条件换为一个函数,每次需要不同的功能时,就传入不同的函数指针。
代码:
typedef bool (*pFunc)(int n) ; //定义函数指针bool isOdd(int n){ return (n&1)==1;}void adjust(vector<int>& nums,pFunc fun){ //根据不同的fun参数,来实现不同的调整 int i=0,j=nums.size()-1; while(i<j){ while(i<j&&fun(nums[i])) ++i; while(i<j&&(!fun(nums[j]))) --j; if(i<j) swap(nums[i],nums[j]); }}
0 0
- 【剑指offer系列】 调整数组顺序使奇数位于偶数前面___14
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指 offer:调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- [剑指offer]调整数组顺序使奇数位于偶数前面
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- 剑指offer|调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指Offer:调整数组顺序使奇数位于偶数前面
- 剑指offer - 调整数组顺序使奇数位于偶数前面
- 苹果官方xcode工程build设置指南
- [剑指offer]和为s的两个数 ; 和为s的连续正整数序列
- SQL基础——SELECT
- 加载网络数据失败的原因:
- setTimeout 与setInterval
- 【剑指offer系列】 调整数组顺序使奇数位于偶数前面___14
- POJ -- 2253 -- Frogger (最短路变形)
- 负载均衡
- eleasticsearch学习笔记(未完)
- C++的三大特性:封装、继承、多态
- 安卓view的绘制,涂鸦功能实现,恢复撤销功能
- jsp的select控件,怎么用EL表达式自动选中
- [剑指offer]翻转句子 ; 左旋字符串
- 分布式