今晚队伍里的一名技术成员面试北京一家创业公司,逼格挺高,都是阿里微软出来的高管创业,面java研发岗位。
问了一个问题,一个数组,里面的数字比较乱,要求负数放左边,正数放右边。
= = 结果他没答上来。。。
他选择再开两个数组,正数放进去,负数放进去。
面试官要求不能用排序,觉得排序复杂度太高。
给了10分钟时间,我听完后也试了一下题目,这是一开始写的算法
扫描遍历,发现正数出现在负数前面,就调换位置。
按理说挺简单,两分钟就写完了,但是跑不出结果。
一开始以为是死循环,后面测试发现swap函数没起啥作用。
于是改了一下,这是新的代码:
package edu.fjnu.method;
public class Method {
public int[] arrayChange(int [] array){
int length = array.length ;
int low = 0;
int high = length -1 ;
while (low <high) {
while(array[low]<0 && low <