面试题:给一个无序数组,要求实现把奇数放左边,偶数放右边(不要求稳定性)

记录一下笔面试中出现的比较简单却又带来了很大麻烦的一些题目。

题目:给一个无序数组,要求实现把奇数放左边,偶数放右边(不要求稳定性)
输入示例:[4,1,2,7,3,5,8] 输出示例:[5,1,3,7,2,4,8] (可能得到的结果不相同)
来源:字节跳动后端开发一面

java代码实现

/**
 * @Description 面试题:给一个无序数组,实现把奇数放左边,偶数放右边
 * @Author shendongjian
 * @CreateTime 2019/7/24 10:38
 */
public class SwapArray {
    private static int[] arr = {4,1,2,7,3,5,8};
    public static void main(String[] args){
        int left = 0,right = arr.length-1;
        while(left < right){
            while(arr[left] % 2 == 1){
                left++;
            }
            while(arr[right] % 2 == 0){
                right--;
            }
            if(left < right){
                swap(arr,left,right);
            }
        }
        for(int num:arr){
            System.out.print(num+"\t");
        }
    }

    private static void swap(int[] arr,int a,int b){
        int tmp = arr[a];
        arr[a] = arr[b];
        arr[b] = tmp;
    }
}

运行效果如图

代码有很大的优化和精简的空间,但是由于时间问题 (不,我是懒) 在此不做深入研究

全部评论

相关推荐

03-29 17:05
门头沟学院 Java
asdasdasda...:我前段时间找工作焦虑,有几天连续熬夜熬穿了,然后心脏突然不舒服,立马躺床上睡觉了,然后第二天还是不舒服,去看医生说是心率不齐,吓得我后面天天早早睡觉,调养身体,过了好几天才好过来。所以真的,工作这些东西哪有那么重要,最多钱多一点钱少一点,降低物欲。活着才是最重要的,现在想想真的后怕
如何排解工作中的焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务