力扣第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();}
}
?本文相關圖片資源來自于網絡中,如有侵權請聯系刪除!