博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法面试题解答(六)
阅读量:5975 次
发布时间:2019-06-20

本文共 946 字,大约阅读时间需要 3 分钟。

我想把这期作为数组类面试题的一个总结,题目不难,但是要注意不要犯错,下面是容易犯错的地方:

1. ++,--后索引有可能不满足我们假设的条件,一般情况都需要判断,使用while,for,if进行条件检查;

2. ++,-- 和break或者continue配合时,可别搞乱了顺序

 

题目1: Given an array with positive, negative and zeros, arrange the given array such that negatives are on left, zeros in the middle and positives on the right.

打眼一看,这个问题特别简单,不就是两头遍历,然后交换吗,确实是这样子,思想特别简单,但是实现起来就容易出错了,下面是我的版本:

#include 
using namespace std;void groupInteger(int *data, int len){ int i = 0, j = len-1; while(i
=0) j--; if(data[i]>=0 && data[j]<0 && i
=0 或者 swap后j的位置或者j本身>=0,或者j+1的位置>=0 i++; j = len -1; while(i
0) j--; if(data[i]>0 && data[j]==0 && i

这个题目也是很有意思的,设计一下测试用例吧(这里只是验证功能,所以就只设计Functional cases):

1, {-1,0,2}

2, {2,0,-1,}

3, {-2,-2,3}

4, {-1,2}

5, {-1,0}

6, {1,2,3}

7, {0,0,0,0}

8, {-1,-2,-3,-4}

转载于:https://www.cnblogs.com/whyandinside/archive/2012/12/18/2823664.html

你可能感兴趣的文章
apache2.4.4的安装过程
查看>>
php5.3安装oracle的扩展oci8与pdo_oci
查看>>
发送超长短信的协议格式
查看>>
CentOS 6.x 快速安装L2TP ***
查看>>
mysql主主复制(双主复制)配置步骤
查看>>
一篇文章能够看懂基础源代码之JAVA篇
查看>>
什么是大数据技术架构
查看>>
【分享】如何救援記憶卡中誤刪的資料
查看>>
北方计算机专修学院“展示自我 秀出风采” 网页创意设计大赛成功举办
查看>>
DNS解析相关实验:7台主机的恩怨情仇
查看>>
Goldengate双向复制配置
查看>>
Oracle官方内部MAA教程
查看>>
DNS相关配置
查看>>
Nginx-location配置
查看>>
扫描线
查看>>
设计模式--模板方法(Template Method)
查看>>
引入CSS的方式有哪些?link和@import的有何区别应如何选择【转载】
查看>>
MariaDB 和 MySQL 性能测试比较
查看>>
Restful Web Service初识
查看>>
This用法和闭包
查看>>