Leetcode (力扣)做题记录 hot100(49,136,169,20)

发布于:2025-05-14 ⋅ 阅读:(18) ⋅ 点赞:(0)
力扣第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))){
            //判断栈内有没有 如果没值就返回false
            if(deque.peek() != map.get(s.charAt(i))||deque.isEmpty()){
                return false;
            }
            //如果有值且满足条件则弹出
            deque.pop();

        }
        else{
            deque.push(s.charAt(i));
        }

       }
       return deque.isEmpty();
    }
}


 本文相关图片资源来自于网络中,如有侵权请联系删除!


网站公告

今日签到

点亮在社区的每一天
去签到