2.1.11 Remove Element

来源:互联网 发布:java疯狂讲义txt下载 编辑:程序博客网 时间:2024/06/11 05:42

Link: https://oj.leetcode.com/submissions/detail/9751364/

这题应该很简单,但没过。再做。

我的思路:

先对数组排序,然后找到element。//不需要这样做。

Approach I: 不等就复制。相等跳过。

Time: O(n)

public class Solution {    public int removeElement(int[] A, int elem) {        int len = 0;        for(int i = 0; i < A.length; i++){            if(A[i] != elem){                A[len] = A[i];                len++;            }        }        return len;    }    }

Approach II: 相等就从数组最后取元素。(比方法I难理解)。

Time: O(n)

public class Solution {    public int removeElement(int[] A, int elem) {        int len = A.length - 1;        for(int i = 0; i <=len; i++){            if(A[i] == elem){                A[i] = A[len];                len--;//A[len] is considered                i--;//because we have i++ in for loop            }        }        return len+1;    }}


0 0
原创粉丝点击