zoukankan      html  css  js  c++  java
  • 【每日一题-leetcode】49.字母异位词分组

    49.字母异位词分组

    1. 字母异位词分组

    难度中等309

    给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

    示例:

    输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
    输出:
    [
      ["ate","eat","tea"],
      ["nat","tan"],
      ["bat"]
    ]
    

    1.排序数组分类

    时间复杂度:O(NK logK)

    空间复杂度:O(NK)

      public List<List<String>> groupAnagrams(String[] strs) {
                if(strs.length == 0 || strs == null){
                    return null;
                }
                //1.按照排序
                Map<String,List> ans = new HashMap<String,List>();
                for(String str : strs){
                    char [] chs = str.toCharArray();
                    Arrays.sort(chs);
                    String key = String.valueOf(chs);
                    if(!ans.containsKey(key))
                        ans.put(key,new ArrayList());
                    ans.get(key).add(str);
                }
        
                return new ArrayList(ans.values());
            }
    
  • 相关阅读:
    PKU 1860 Currency Exchange 最短路 bellman
    PKU 3259 Wormholes 最短路 bellman
    bzoj3514
    bzoj2594
    bzoj3901
    bzoj2843&&1180
    bzoj2631
    bzoj2049
    bzoj2002
    bzoj1146
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860652.html
Copyright © 2011-2022 走看看