leetcode周赛388(1-3)

周赛第一次解出来了三个,虽然第三个比赛时候没解出来但是很近了,就下来试了一下,真的解出来了,记录一下。
1.(100233. 重新分装苹果)题目描述:

给你一个长度为 n 的数组 apple 和另一个长度为 m 的数组 capacity 。
一共有 n 个包裹,其中第 i 个包裹中装着 apple[i] 个苹果。同时,还有 m 个箱子,第 i 个箱子的容量为 capacity[i] 个苹果。
请你选择一些箱子来将这 n 个包裹中的苹果重新分装到箱子中,返回你需要选择的箱子的 最小 数量。
注意,同一个包裹中的苹果可以分装到不同的箱子中。

第一版(只需要看懂 同一个包裹中的苹果可以分装到不同的箱子中 这个题就是排序)

class Solution {
    public int minimumBoxes(int[] apple, int[] capacity) {
        int sum=0;
        for(int num:apple){
            sum+=num;
        }
        Arrays.sort(capacity);
        int count=0;
        for(int i=capacity.length-1;i>=0;i--){
            if(sum<=0){
                return count;
            }
            sum-=capacity[i];
            count++;
        }
        return count;
    }
}

2.(100247. 幸福值最大化的选择方案)题目描述:

给你一个长度为 n 的数组 happiness ,以及一个 正整数 k 。
n 个孩子站成一队,其中第 i 个孩子的 幸福值 是 happiness[i] 。你计划组织 k 轮筛选从这 n 个孩子中选出 k 个孩子。
在每一轮选择一个孩子时,所有 尚未 被选中的孩子的 幸福值 将减少 1 。注意,幸福值 不能 变成负数,且只有在它是正数的情况下才会减少。
选择 k 个孩子,并使你选中的孩子幸福值之和最大,返回你能够得到的 最大值 。
输入:happiness = [1,2,3], k = 2
输出:4
解释:按以下方式选择 2 个孩子:
- 选择幸福值为 3 的孩子。剩余孩子的幸福值变为 [0,1] 。
- 选择幸福值为 1 的孩子。剩余孩子的幸福值变为 [0] 。注意幸福值不能小于 0 。
所选孩子的幸福值之和为 3 + 1 = 4

第一版(不需要每次都给后面没选到的减一,只需要记录后面的需要减去多少就可以)

class Solution {
    public long maximumHappinessSum(int[] happiness, int k) {
        int len=happiness.length;
        Arrays.sort(happiness);
        long res=(long)happiness[len-1];
        for(int i=1;i<k;i++){
            if((len-i-1)>=0&&happiness[len-i-1]-i>0){
                happiness[len-i-1]-=i;
            }else{
                return res;
            }
            res+=happiness[len-i-1];
        }
        return res;
    }
}

3.(100251. 数组中的最短非公共子字符串)题目描述:

给你一个数组 arr ,数组中有 n 个 非空 字符串。
请你求出一个长度为 n 的字符串 answer ,满足:
answer[i] 是 arr[i] 最短 的子字符串,且它不是 arr 中其他任何字符串的子字符串。如果有多个这样的子字符串存在,answer[i] 应该是它们中字典序最小的一个。如果不存在这样的子字符串,answer[i] 为空字符串。
请你返回数组 answer 。
输入:arr = ["cab","ad","bad","c"]
输出:["ab","","ba",""]
解释:求解过程如下:
- 对于字符串 "cab" ,最短没有在其他字符串中出现过的子字符串是 "ca" 或者 "ab" ,我们选择字典序更小的子字符串,也就是 "ab" 。
- 对于字符串 "ad" ,不存在没有在其他字符串中出现过的子字符串。
- 对于字符串 "bad" ,最短没有在其他字符串中出现过的子字符串是 "ba" 。
- 对于字符串 "c" ,不存在没有在其他字符串中出现过的子字符串。

第一版(我是暴力求解,只需要知道一个字符串的子字符串怎么求就可以,还有就是含有多个长度一样的时候,要取字典序最小的)

class Solution {
    public String[] shortestSubstrings(String[] arr) {
        String[] res=new String[arr.length];
        for(int i=0;i<arr.length;i++){
            res[i]=genString(i,arr);
        }
        return res;
    }
    public String genString(int index,String[] arr){
        String temp=arr[index];
        boolean flag1=true;
        for(int i=0;i<arr[index].length();i++){
            for(int j=i+1;j<=arr[index].length();j++){
                boolean flag=true;
                for(int m=0;m<arr.length;m++){
                    if(m!=index&&arr[m].contains(arr[index].substring(i,j))){
                        flag=false;
                        break;
                    }
                }
                if(flag){
                    flag1=false;
                    if((j-i)<temp.length())
                        temp=arr[index].substring(i,j);
                    else if((j-i)==temp.length()){
                        if(temp.compareTo(arr[index].substring(i,j))>0){
                            temp=arr[index].substring(i,j);
                        }
                    }
                }
            }
           
        }
        if(flag1){
            return "";
        }
        return temp;
    }
}

总结一下就是,第二题失误就是没看清题,返回值是 long 已经很清晰说明了计算和过程中会出现 int 溢出的情况,但是我当时没看清,用 int 当作了返回值导致在 最后几个测试案例过不去耽搁了好久的时间。。。

第三题就是不会求字符串的 子字符串。。。

铭记!!!

相关推荐

  1. leetcode388(1-3)

    2024-03-11 21:06:01       22 阅读
  2. LeetCode】第388

    2024-03-11 21:06:01       17 阅读
  3. leetcode388第一题

    2024-03-11 21:06:01       19 阅读
  4. leetcode388第二题

    2024-03-11 21:06:01       23 阅读
  5. LeetCode388个人题解

    2024-03-11 21:06:01       20 阅读
  6. Leetcode388 问题和解法

    2024-03-11 21:06:01       20 阅读
  7. Leetcode388 问题和解法

    2024-03-11 21:06:01       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 21:06:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 21:06:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 21:06:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 21:06:01       18 阅读

热门阅读

  1. 网络、UDP编程

    2024-03-11 21:06:01       15 阅读
  2. 安卓 Kotlin 面试题 31-40

    2024-03-11 21:06:01       26 阅读
  3. Rust 泛型使用过程中的 <T> 和 ::<T> 的区别

    2024-03-11 21:06:01       16 阅读
  4. 目标检测:Anchor-free算法模型

    2024-03-11 21:06:01       22 阅读
  5. golang中fallthrough简介及用法

    2024-03-11 21:06:01       23 阅读