剑指offer--面试题14--收获

本文介绍如何通过解决面试题14来提升初级程序员的技术水平,并提供了实现该题目的参考代码。此外,文章还强调了在面试中展示程序功能扩展性的方法,如使用函数指针来提高代码重用性,从而增加面试成功率。

按照作者的说法,作为应届毕业生的我来说,如果能写出初级程序员的参考代码来解决面试题14就可认为过关了。。。

参考代码如下:

void ReorderOddEven_1(int *pData, unsigned int length)
{
    if(pData == NULL || length == 0)
        return;

    int *pBegin = pData;
    int *pEnd = pData + length - 1;

    while(pBegin < pEnd)
    {
        // 向后移动pBegin,直到它指向偶数
        while(pBegin < pEnd && (*pBegin & 0x1) != 0)
            pBegin ++;

        // 向前移动pEnd,直到它指向奇数
        while(pBegin < pEnd && (*pEnd & 0x1) == 0)
            pEnd --;

        if(pBegin < pEnd)
        {
            int temp = *pBegin;
            *pBegin = *pEnd;
            *pEnd = temp;
        }
    }
}

 说明:这里的pBegin < pEnd 都是很有必要的!!!

该框架务必记住!!!

 

如果要秒杀offer,则需要考虑程序功能的扩展性,比如用函数指针来代替各种各样的分类标准。。。

 解耦提高了代码重用性

 

目标:1、快速的思维能力;2、提高代码重用性。

转载于:https://www.cnblogs.com/hello-yz/p/3251938.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值