美文网首页数据结构与算法
算法实战-LeetCode之旅

算法实战-LeetCode之旅

作者: ReentrantSucc | 来源:发表于2019-01-10 21:11 被阅读0次

Sort Array By Parity

AC-17ms.
按照《算法导论》排序一章的一些概念,第二种可以称为是原址的(in-place)。
First Try:
用了另一个数组来保存结果,如果是奇数进行swap操作,同时在else中还要维护偶数的位置正确性。

class Solution {
    public int[] sortArrayByParity(int[] A) {
        int[] result = new int[A.length];
        for (int i = 0,tmp = 0; i < A.length; i++) {
            if (A[i] % 2 == 1) {
                result[A.length - tmp - 1] = A[i];
                tmp ++;
            } else {
                result[i - tmp] = A[i];
            }
        }
        return result;
    }
}

提交后瞄了眼,发现可以只操作原数组,改了一下,这次只需要将even数据移到前面即可。

for (int i = 0,evenIndex = 0; i < A.length; i++) {
            if (A[i] % 2 == 0) {
                int tmp = A[i];
                A[i] = A[evenIndex];
                A[evenIndex] = tmp;
                evenIndex ++;
            }
        }
        System.err.println(System.nanoTime() - start + "ms.");
        return A;

相关文章

  • 算法实战-LeetCode之旅

    Sort Array By Parity AC-17ms.按照《算法导论》排序一章的一些概念,第二种可以称为是原址...

  • 玩转算法面试之数组(一)

    算法面试之数组 从实战的经典算法题出发,以LeetCode上的题目为例,一点点剖析与优化。LeetCode 283...

  • LeetCode题解

    我的微信公众号《Chris的算法之旅》,专注于写LeetCode题解,数据结构和算法类的文章,如果觉得还不错,希望...

  • 001-算法开篇

    1.开篇 此文集记录算法学习的过程,以基本的数据结构为基础,展开为在不同场景下算法的应用,实战于LeetCode。...

  • Swap Nodes in Pairs

    标签: C++ 算法 LeetCode 链表 每日算法——leetcode系列 问题 Swap Nodes in ...

  • Combination Sum II

    标签: C++ 算法 LeetCode DFS 每日算法——leetcode系列 问题 Combinatio...

  • Divide Two Integers

    标签: C++ 算法 LeetCode 每日算法——leetcode系列 问题 Divide Two Integ...

  • First Missing Positive

    标签: C++ 算法 LeetCode 数组 每日算法——leetcode系列 问题 First Missing...

  • Valid Sudoku

    Valid Sudoku 标签: C++ 算法 LeetCode 每日算法——leetcode系列 问题 Val...

  • Next Permutation

    标签: C++ 算法 LeetCode 数组 每日算法——leetcode系列 问题 Next Permuta...

网友评论

    本文标题:算法实战-LeetCode之旅

    本文链接:https://www.haomeiwen.com/subject/rjsarqtx.html