leetcode 第291场周赛

leetcode 第291场周赛,第1张

leetcode 第 291 场周赛

网址链接


文章目录
    • leetcode 第 291 场周赛
      • 题目列表
        • 移除指定数字得到的最大结果 3
        • 必须拿起的最小连续卡牌数 4
        • 含最多 K 个可整除元素的子数组 5
        • 字符串的总引力


题目列表
  • 移除指定数字得到的最大结果 3

第一种 纯暴力,加入集合排序

class Solution {
   public String removeDigit(String number, char digit) {
       List<String> list = new ArrayList<>();
       for(int i = 0; i < number.length(); i++){
           if(number.charAt(i) == digit){
               list.add(number.substring(0,i) + number.substring(i + 1,number.length())); // 去掉一样的字符
           }
       }
       
       Collections.sort(list);  //还能这样排序呀!
       return list.get(list.size() -1);
   }
}

第二种 贪心
从前往后遍历,如果找到了数字的下标,把他放进集合中,如果数字比下一个字符比他大,那直接退出循环,这就是我们要找的数字下标。
集合中的最后一个数字就是应该删除的目标字符的下标。

class Solution {
    public String removeDigit(String number, char digit) {

        List<Integer> list = new ArrayList<>();

        char[] c = number.toCharArray();

        int i = 0;

        for(i = 0; i < c.length; i++){
            if(c[i] == digit){
                list.add(i);
                if(i + 1 < c.length && c[i + 1] > c[i]){
                    break;
                }
            }

        }
        
        int x = list.get(list.size() - 1);
        return (number.substring(0, x) + number.substring(x + 1, c.length));
        

    }
}
  • 必须拿起的最小连续卡牌数 4

遍历卡牌,将卡牌和下标存入Map集合,遍历过程中,判断卡牌是否已经存在在Map集合中,如果存在更新answer。

class Solution {
    public int minimumCardPickup(int[] cards) {
        Map<Integer, Integer> hashmap = new HashMap<>();
        
        int answer = Integer.MAX_VALUE;
        for(int i = 0; i < cards.length; i++){
            if(hashmap.containsKey(cards[i])){
                answer = Math.min(answer, i - hashmap.get(cards[i]));
            }
            hashmap.put(cards[i], i);
        }
        
        
        if(answer == Integer.MAX_VALUE){
            return -1;    
        }
        
        return answer + 1;
        
    }
}
  • 含最多 K 个可整除元素的子数组 5
  • 字符串的总引力

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/798886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存