力扣第49题:字母异位词分组
49. 字母异位词分组 - 力扣(LeetCode)
遍历数组,将每一个字符串变成char数组 然后排序,如果map里面有则将他的值返回来(key是排序好的字符串)
class Solution {public List<List<String>> groupAnagrams(String[] strs) {HashMap<String,List<String>> map = new HashMap<>();for(String s:strs){char[] c = s.toCharArray();Arrays.sort(c);String sd = new String(c);List<String> list = map.getOrDefault(sd,new ArrayList<String>());list.add(s);map.put(sd,list);}return new ArrayList<List<String>>(map.values());}
}
力扣第136题:只出现一次的数字
136. 只出现一次的数字 - 力扣(LeetCode)
class Solution {public int singleNumber(int[] nums) {//任何数^0 = 任何数 ^自身则是0//满足交换律int single = 0;for(int num :nums){single = single ^ num;}return single;}
}
力扣第169题:多数元素
169. 多数元素 - 力扣(LeetCode)
class Solution {public int majorityElement(int[] nums) {int count = 0;Integer c= null;for(int num:nums){if(count == 0){c = num;}count +=(num ==c) ? 1:-1;}return c;}
}
力扣第20题:有效的括号
20. 有效的括号 - 力扣(LeetCode)
class Solution {public boolean isValid(String s) {HashMap<Character,Character> map = new HashMap<>();map.put('}','{');map.put(')','(');map.put(']','[');Deque<Character> deque = new LinkedList<>();for(int i = 0; i< s.length();i++){//如果有就证明右括号if(map.containsKey(s.charAt(i))){//判断栈内有没有 如果没值就返回falseif(deque.peek() != map.get(s.charAt(i))||deque.isEmpty()){return false;}//如果有值且满足条件则弹出deque.pop();}else{deque.push(s.charAt(i));}}return deque.isEmpty();}
}
本文相关图片资源来自于网络中,如有侵权请联系删除!