挑战春招找到java后端实习第一天(1.1)

八股文

1.java中有哪些集合类请简单介绍一下

集合类分为两大类Collection和Map。前者是对象的集合,后者是键值对。

Collection分为List,Set,Queue三个接口。

List有LinkedList,ArrayList,Vector

Set(不允许重复)有HashSet,TreeSet(元素有序),LinkedHashSet(维护插入顺序)

Queue有LinkedList,PriorityQueue。

Map有HashMap,LinkedHashMap,TreeMap(键值有序),HashTable,ConcurrentHashMap(后两个都不允许键值为null) 实现类。

接口和抽象类有什么区别

接口是like a,抽象类是is a

Java 抽象类和接口的区别,看这一篇就够了,全面解析 | 二哥的Java进阶之路

算法

740. 删除并获得点数

给你一个整数数组 nums ,你可以对它进行一些操作。

每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1nums[i] + 1 的元素。

开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。

示例 1:

复制代码
输入:nums = [3,4,2]
输出:6
解释:
删除 4 获得 4 个点数,因此 3 也被删除。
之后,删除 2 获得 2 个点数。总共获得 6 个点数。

示例 2:

复制代码
输入:nums = [2,2,3,3,3,4]
输出:9
解释:
删除 3 获得 3 个点数,接着要删除两个 2 和 4 。
之后,再次删除 3 获得 3 个点数,再次删除 3 获得 3 个点数。
总共获得 9 个点数。

提示:

  • 1 <= nums.length <= 2 * 104
  • 1 <= nums[i] <= 104

思路:这题看似有两个约束,但是如果把数组排序之后那就只用考虑前一个了,因为与打家劫舍的原理一致,如果前一个选中了那么后一个会给删掉,以此类推可以发现所有的都是按照规则去排,转化为顺序dp。

cnt记录每个元素出现几次,f[][1]表示选择该元素的最大值,f[][0]表示不选该元素的最大值

java 复制代码
class Solution {
    public int deleteAndEarn(int[] nums) {
        int cnt[]=new int[10001];
        int max=-1;
        for(int i:nums){
            cnt[i]++;
            max=Math.max(max,i);
        }
        int f[][]=new int[max+1][2];
        for(int i=1;i<=max;i++){
            f[i][1]=f[i-1][0]+cnt[i]*i;
            f[i][0]=Math.max(f[i-1][1],f[i-1][0]);
        }
        return Math.max(f[max][0],f[max][1]);
    }
}

开心的事:跑完人生第一个五公里

不开心:暂时没有

思考:不能太晚睡觉,保持规律的作息,多去看望外婆。每天滚动复习前一天的知识点,明天开始做项目。新一年,新的开始,保持Day1的热情继续努力。

八股文来自:面试鸭

相关推荐
Java 码农10 分钟前
Centos7 maven 安装
java·python·centos·maven
harmful_sheep19 分钟前
maven mvn 安装自定义 jar 包
java·maven·jar
Lucis__42 分钟前
再探类&对象——C++入门进阶
开发语言·c++
007php00743 分钟前
某大厂跳动面试:计算机网络相关问题解析与总结
java·开发语言·学习·计算机网络·mysql·面试·职场和发展
JH30731 小时前
第七篇:Buffer Pool 与 InnoDB 其他组件的协作
java·数据库·mysql·oracle
lsx2024061 小时前
HTML 字符集
开发语言
很㗊1 小时前
C与C++---类型转换
c语言·开发语言
say_fall2 小时前
精通C语言(3. 自定义类型:联合体和枚举)
c语言·开发语言
郝学胜-神的一滴2 小时前
Effective Python 第43条:自定义容器类型为什么应该从 `collections.abc` 继承?
开发语言·python
jndingxin2 小时前
c++多线程(6)------ 条件变量
开发语言·c++