【面試題庫】001判定字符是否唯一

leetcode

https://leetcode-cn.com/problems/is-unique-lcci/

最差解法

class Solution {
    public boolean isUnique(String astr) {
        char[] strArray = astr.toCharArray();
        for (int i = 0; i < strArray.length; i++) {
            char str = strArray[i];
            for (int j = 0; j < strArray.length; j++) {
                if (i == j) {
                    continue;
                }
                char newstr = strArray[j];

                if (str == newstr) {
                    return false;
                }
            }
        }
        return true;
    }
}

遍歷次數 n*n

優化解法

class Solution {
    public boolean isUnique(String astr) {
        char[] strArray = astr.toCharArray();
        for (int i = 0; i < strArray.length; i++) {
            char str = strArray[i];
            for (int j = i + 1; j < strArray.length; j++) {
                char newstr = strArray[j];

                if (str == newstr) {
                    return false;
                }
            }
        }
        return true;
    }
}

第二輪遍歷沒必要從頭開始,遍歷次數

1*(n-1) +2*(n-2) + ... (n-2)*2 + (n-1)*1 + n(n-n)

java

c

參考java

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章