华为面试题——一道关于指针方面的编程题(C/C++)
int A[nSize],当中隐藏着若干0,其余非0整数。写一个函数int Func(int* A, int nSize),使A把0移至后面。非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。
尽可能不使用辅助空间且考虑效率及异常问题。凝视规范且给出设计思路
注:我的方法的复杂度为O(n),大家假设有其他方法希望能够交流一下。
/*
Blog:
http://blog.csdn.net/jiangxinnju
*/
#include <iostream>
#include <random>
using namespace std;
#define ARRAYSZIE 100
int Func(int* A,int nSize)
{
int *p_zero = A; //指向最開始的零值
int *p_unzero = A; //指向最后的非零值
while(1)
{
for(int i=(p_zero-A); i<nSize; i++)
{
if(A[i] == 0) //找到第一个零值
{
p_zero = &A[i];
break;
}
if(i == nSize-1) //没有找到零值。说明所有为非零值
{
return -1;
}
}
for(int i=(p_zero-A+1); i<nSize; i++)
{
if(A[i] != 0) //找到零值之后的第一个非零值
{
p_unzero = &A[i];
break;
}
if(i == nSize-1) //没有找到下一个非零值,说明所有为零值,或者已经排序完成
{
return (p_zero-A);
}
}
*p_zero = *p_unzero;
*p_unzero = 0;
p_zero++;
}
}
void test_exercise001()
{
int A[ARRAYSZIE];
default_random_engine e;
uniform_int_distribution<> d(0,1);
for(int i=0; i<ARRAYSZIE; i++)
{
A[i] = d(e); //随机产生0和1值
}
for(int i=0; i<ARRAYSZIE; i++)
{
cout << A[i] << " ";
}
cout << "\nThe position of the first zero is: " << Func(A,ARRAYSZIE) << endl;
for(int i=0; i<ARRAYSZIE; i++)
{
cout << A[i] << " ";
}
}
华为面试题——一道关于指针方面的编程题(C/C++)相关推荐
- 华为机试题python版节选(基础编程题)
前言 自学python之后,可以借助这些企业招聘时的机考题目来锤炼一下实践能力.. 每道题含要点解析,是按照自己理解梳理的,多个答案的是结合自己的答案+网上的答案,不一定很严谨,请读者自行在编译器中调 ...
- 算法面试题-美团点评2016研发工程师编程题(二)-字符编码(哈夫曼树)
题目: 解析:这个题目的关键问题是"最短的编码",这里可以知道应该是Huffman编码了. 哈夫曼编码是一种可变字长编码,也就是说对于不同的字符的编码不是定长的,所以才能比定长编码 ...
- python字典程序题_急!一道关于python字典的编程题!求思路!
作业要求做一个python程序导入一个文本文件(importsys,file_in=open(sys.argv[1],'r'))那个文本文件里都是AnimalId:Timestamp:StationI ...
- 2018深信服java笔试题,深信服2018秋招编程题
深信服2018秋招编程题 深信服2018秋招编程题 第一题: 其中,reverse函数的代码实现如下: 1. unsigned int reverse(unsigned int num) { unsi ...
- 一道ACM剑气算法的编程题
无剑无我 Problem Description: 北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯.时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从. ...
- 网易python笔试题_2017秋季网易校园招聘编程题和个人解答(python)
做菜 题干 大牛喜欢做菜,每种菜需要不同的材料,求需要准备多少种材料. 每一行是一个菜谱,<50字节,输入行数不确定,不超过50行. 难点:如何获取输入结束的标志 输入示例 apple bana ...
- 一道经典的Java多线程编程题
问题描述 启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,1 ...
- 京东android面试题2019,京东2019春招编程题参考代码
数内排序 分析 字符串读入,逆序排序即可. 时间复杂度 O(len(x)*log(len(x))) 参考代码 #include using namespace std; int main() { st ...
- 华为秋招机试三道编程题(2021-09-01)
通知:华为.阿里最新的秋招笔试编程题题目.思路以及参考代码已经全部整理好放在微信公众号[TechGuide]了,私信公众号回复[华为]或者[阿里]即可获得最实时.最详细的笔试题解啦! 通知:华为.阿里 ...
最新文章
- 任天堂经典拳击游戏可以体感操作了,打开网页就能玩,击败泰森不是梦
- DHCP_SNOOPING_ DAI_IPSG实验
- 微信公众号 文章的爬虫系统
- 扫地机器人返充原理_扫地机器人全解析
- 把用户输入的文本转义(主要针对特殊符号和emoji表情)
- perf script 执行时间_在Python中准确地测量代码执行时间
- 使用Adobe Acrobat为PDF文件添加图章(仅图片)
- 【气动学】基于matlab GUI外弹道仿真系统【含Matlab源码 1044期】
- python爬取美女_Python制作爬虫抓取美女图
- 固态硬盘母盘制作 linux,网维大师母盘制作教程
- ArcGIS动态表格扩展模块Mapping and Charting Solutions使用教程及下载地址
- 产品读书《粉丝经济:传统企业转型互联网的突破口》
- 在虚拟机里通过U盘引导安装Win10教程
- docker 访问宿主机网络
- shuipfcms二次开发之图片上传
- Nessus 安装文件和详细教程(kali系统,附网盘下载链接)
- 解决Windows找不到steam_api.dll文件
- 双alpha可以结合吗_推文简评《和我的Alpha一起待产》:这本双A甜文有点意思
- 有没有讲python模块的书_python - 模块,包
- 最新postfix 的master.cf配置参考
热门文章
- python有道翻译接口-【Python】Python利用有道翻译开发API应用示例
- python编程入门指南 代码库在哪下-致Python初学者 Anaconda入门使用指南完整版
- python语言实例-Python语言实现百度语音识别API的使用实例
- 自学python可以找到好的工作吗-27岁0基础自学Python,多久可以找到工作?
- python开发需要掌握哪些知识-Python的8个基础知识点,新手必须背下来!
- 在Ubuntu上通过VNC Viewer连接Jetson nano桌面
- usaco Arithmetic Progressions
- HDU1715 大菲波数(大数相加)(Java题解)
- cad 关键字被保留了?选择集关键字保留了? N S W E关键字无法用?
- ACM-ICPC 2018 南京赛区网络预赛 L. Magical Girl Haze 最短路+分层图