【面试题库】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

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