🔥 10.9 奇安信笔试面经 - 编程题 & 题解
考试平台: 牛客
考试时间: 2023-10-09 (120 分钟)
考试题型: 选择题 + 2道编程题(核心编程模式)
投递岗位: Java 开发
P1
在一年一度的芭莎明星慈善夜上,组织者邀请了一众国际知名的明星参加。为了能够筹得更多的善款,组织者特地安排了一场名为”凝聚爱心,美育未来”的活动。 每位明星都愿意为慈善事业贡献一定的善款,捐赠金额各不相同。然而,由于一些私人恩怨或者竞争关系,一些明星不愿意与他们不喜欢的明星一起捐款。为了避免尴尬的情况发生,如果明星i捐款,那么他旁边的两位明星i-1 和+1就会拒绝捐款。
由于晚会的座位是围成一个圆圈的,因此第一位明星和最后一位明星会坐在一起即,如果第一位明星捐款,最后一位明星会拒绝捐款:反之亦然
活动组织者希望能够筹集到最大限度的善款,因此他们需要制定一个策略,来决定哪些明星应该捐款。他们聘请了你,作为数据科学家和算法专家,来帮助他们解决这个问题
示例1
输入:
[10, 3,2, 5,7,8,11]
输出:
[23]
说明:
捐款的明星是第1位、第4位和第6位
示例2
输入:
[10, 3, 2, 5, 7, 8]
输出:
19
说明:
捐款的明星是第1位、第3位和第5位
备注
输入: 一个整数数组,包含n个元素,元素值为X。其中 .
输出: 最大限度的善款值
题解
动态规划, LCR 090. 打家劫舍 II 原题
/**
* P1
* @author code5bug (同v)
*/
class Solution {
public int maximizeDonations(int[] d) {
int n = d.length;
if (n == 0) return 0;
else if (n == 1) return d[0];
// 不选最后一个元素时
int[] arr1 = Arrays.copyOfRange(d, 0, n - 1);
// 不选第一个元素时
int[] arr2 = Arrays.copyOfRange(d
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
🔥笔试编程真题宝典💯 文章被收录于专栏
📕分享大厂机试真题深度剖析核心考点,助你速通面试。