国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

leetcode49 Group Anagrams

sunsmell / 1832人閱讀

摘要:同時(shí)使用方法將數(shù)組轉(zhuǎn)化為并利用的直接比較兩個(gè)字符串是否相等。通過(guò)這種方法效率值提高了不少。

題目要求
Given an array of strings, group anagrams together.

For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], 
Return:

[
  ["ate", "eat","tea"],
  ["nat","tan"],
  ["bat"]
]
Note: All inputs will be in lower-case.

將含有相同的字母但是排序可能不同的單詞分類至不同的數(shù)組

思路一:不使用map(超時(shí)了)

這里利用了String的API方法toCharArray來(lái)對(duì)兩個(gè)單詞是否是相同字母組成的進(jìn)行比較。但是效率較低。這里有重復(fù)的無(wú)效操作,例如獲得當(dāng)前數(shù)組的第一個(gè)值并重新計(jì)算其對(duì)應(yīng)的有序char數(shù)組。而且比較兩個(gè)char數(shù)組的方法造成了三圈循環(huán),帶來(lái)的O(n3)的時(shí)間復(fù)雜度

    public List> groupAnagrams(String[] strs) {
        List> result = new LinkedList>();
        L1:for(int i = 0 ; i < strs.length ; i++){
            String temp = strs[i];
            int tempLength = temp.length();
            L2:for(int j = 0 ; j currentList = result.get(j);
                String currentString = currentList.get(0);
                int currentStringLength = currentString.length();
                if(currentStringLength>tempLength){
                    List newResult = new ArrayList();
                    newResult.add(temp);
                    result.add(j, newResult);
                    continue L1;
                }else if (currentStringLength newResult = new ArrayList();
            newResult.add(temp);
            result.add(newResult);
        }
        return result;
    }

    public boolean isPermutation(String s1, String s2){
        if(s1.length() != s2.length()){
            return false;
        }
        char[] s1array = s1.toCharArray();
        Arrays.sort(s1array);
        char[] s2array = s2.toCharArray();
        Arrays.sort(s2array);
        for(int i = 0 ; i
思路二:利用String.valueof

其實(shí)在這里利用Map會(huì)減少重復(fù)的生成char數(shù)組的過(guò)程。同時(shí)使用String.valueof()方法將char數(shù)組轉(zhuǎn)化為String并利用String的API直接比較兩個(gè)字符串是否相等。通過(guò)這種方法效率值提高了不少。

    public List> groupAnagrams2(String[] strs){
        Map> map = new HashMap>();
        for(String temp : strs){
            char[] current = temp.toCharArray();
            Arrays.sort(current);
            String sortedTemp = String.valueOf(current);
            if(!map.containsKey(sortedTemp)){
                List tempResult = new ArrayList();
                tempResult.add(temp);
                map.put(sortedTemp, tempResult);
            }else{
                map.get(sortedTemp).add(temp);
            }
        }
        return new ArrayList>(map.values());
    } 


想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/70056.html

相關(guān)文章

  • leetcode 49 Group Anagrams

    摘要:不需要關(guān)注輸出的順序,所有的輸入都是小寫。的就是經(jīng)過(guò)排序后的字符數(shù)組所對(duì)應(yīng)的字符串。因?yàn)椴恍枰紤]輸出的順序,所以遍歷完直接輸出中的所有值即可。解法邊界情況判斷如果存在相同組成的元素 題目詳情 Given an array of strings, group anagrams together.題目要求輸入一個(gè)字符串?dāng)?shù)組,我們要將由同樣字母組成的字符串整理到一起,然后以如下例子中的格式...

    陳偉 評(píng)論0 收藏0
  • [Leetcode] Group Anagrams 變形詞

    摘要:我們將每個(gè)詞排序后,根據(jù)這個(gè)鍵值,找到哈希表中相應(yīng)的列表,并添加進(jìn)去。 Group Anagrams 最新更新請(qǐng)見:https://yanjia.me/zh/2019/01/... Given an array of strings, group anagrams together. For example, given: [eat, tea, tan, ate, nat, bat...

    Lin_YT 評(píng)論0 收藏0
  • 49. Group Anagrams and 249. Group Shifted Strings

    摘要:也就是同構(gòu)異形體。特點(diǎn)是有相同數(shù)量的組成。素?cái)?shù)可以素?cái)?shù)表。這里使用而不是可以避免最后從導(dǎo)出結(jié)果的時(shí)間。修改了和得到的方法,其他都一樣。但是會(huì)有解不了的地方。還有個(gè)特殊情況就是不是一組。如果數(shù)字編碼出來(lái)都是如果用編碼,出現(xiàn)的就是。 49 Group Anagrams Given an array of strings, group anagrams together. For examp...

    cppowboy 評(píng)論0 收藏0
  • 49. Group Anagrams

    摘要:題目解答遇到這種要求一個(gè)的集合,首先想到的就是。那么被的作為把有同樣的以的形式放到里,然后輸出。 題目:Given an array of strings, group anagrams together. For example, given: [eat, tea, tan, ate, nat, bat], Return: [ [ate, eat,tea], [nat,tan],...

    wangtdgoodluck 評(píng)論0 收藏0
  • [LeetCode] Group Anagram

    Problem Given an array of strings, group anagrams together. Example: Input: [eat, tea, tan, ate, nat, bat], Output: [ [ate,eat,tea], [nat,tan], [bat] ] Note: All inputs will be in lowercase.The ...

    kid143 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<