龙空技术网

华为面试算法题

千莲 356

前言:

此刻小伙伴们对“华为通信算法面试”大致比较注意,你们都需要知道一些“华为通信算法面试”的相关知识。那么小编同时在网络上网罗了一些有关“华为通信算法面试””的相关文章,希望大家能喜欢,我们一起来了解一下吧!

输入一个整型数组,在原数组的基础上调整元素顺序,使所有零值在最前面,非零元素相对位置不变。注意,在原数组的基础上意味着不能创建新数组。

解法一: 使用冒泡排序,将零值全都移动到数组头,比较简单可以自行尝试,时间复杂度O(n²)。

解法二:先看代码,go实现的

从后往前遍历,0元素的个数加当前索引值正好是最后一个零元素的索引,交换这两个元素位置,遍历结束所有零元素都被移动到数组头部,时间复杂度O(n)。

类似的将所有零元素移到数组末尾,改变一下遍历顺序,从前往后遍历,交换 i 和 i-j 位置的元素即可。

标签: #华为通信算法面试