方法一:
思路:Map——O(nlogn)
public class Solution { public int firstUniqChar(String s) { int len = s.length(); Map<Character, Integer> map = new HashMap<Character, Integer>(); for (int i = 0; i < len; i++) { if (map.containsKey(s.charAt(i))) map.put(s.charAt(i), map.get(s.charAt(i)) + 1); else map.put(s.charAt(i), 1); } for (int i = 0; i < len; i++) { if (map.get(s.charAt(i)) == 1) return i; } return -1; }}Runtime:137ms
方法二:
思路:数组——O(n)
public class Solution { public int firstUniqChar(String s) { int count[] = new int[26], len = s.length(); for (int i = 0; i < len; i++) count[s.charAt(i) - 'a']++; for (int i = 0; i < len; i++) if (count[s.charAt(i) - 'a']== 1) return i; return -1; }}Runtime:23ms
新闻热点
疑难解答