阿里测评——靶子

问答题:

在某射击场有N个靶,每个靶上都有一个分数,存在score数组中。击中第i个靶的得分为score[left] * score[i] * score[right],同时原left和right两个靶变为相邻的靶。其中得分为0的靶是不能射击的,当left不存在或者不能射击时,得分为 score[i] * score[right],同理right也遵循此规则; 当left和right都不存在或者不能射击时,得分为score[i]。请计算出击中所有能射击的靶,最多能得多少分?设计算法。

可参考:leetCode312.Burst Balloons

AC通过,不足之处请指正

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 import java.util.Scanner;
 4
 5 public class Main{
 6
 7     public static void main(String[] args) {
 8         Scanner sc=new Scanner(System.in);
 9         List<Integer>list=new ArrayList<Integer>();
10         List<Integer>tmplist=new ArrayList<Integer>();
11         int sum=0;
12         int n=sc.nextInt();
13         for(int i=0;i<n;i++)
14             list.add(sc.nextInt());
15         for(int i=0;i<n;i++){
16             if(list.get(i)!=0)
17                 tmplist.add(list.get(i));
18             else{
19                 int []a=new int[tmplist.size()];
20                 for(int j=0;j<tmplist.size();j++){
21                     a[j]=tmplist.get(j);
22                 }
23                 sum+=maxCoins(a);
24                 tmplist.clear();
25             }
26             if(i==n-1){
27                 int []a=new int[tmplist.size()];
28                 for(int j=0;j<tmplist.size();j++){
29                     a[j]=tmplist.get(j);
30                 }
31                 sum+=maxCoins(a);
32                 tmplist.clear();
33             }
34         }
35         System.out.println(sum);
36     }
37     public static int maxCoins(int[] iNums) {
38         int[] nums = new int[iNums.length + 2];
39         int n = 1;
40         for (int x : iNums) if (x > 0) nums[n++] = x;
41         nums[0] = nums[n++] = 1;
42         int[][] memo = new int[n][n];
43         return burst(memo, nums, 0, n - 1);
44     }
45
46     public static int burst(int[][] memo, int[] nums, int left, int right) {
47         if (left + 1 == right) return 0;
48         if (memo[left][right] > 0) return memo[left][right];
49         int ans = 0;
50         for (int i = left + 1; i < right; ++i)
51             ans = Math.max(ans, nums[left] * nums[i] * nums[right]
52             + burst(memo, nums, left, i) + burst(memo, nums, i, right));
53         memo[left][right] = ans;
54         return ans;
55     }
56
57 }
时间: 2024-10-05 04:25:05

阿里测评——靶子的相关文章

阿里2018前端测评题(Promise异步流程控制)

用Promise控制异步流程,三个异步任务,时间可能有先后,但是要按照想要的顺序输出. 我这里用四种方法解决,其实也就是考察你对Promise的理解,基础题了. //实现mergePromise函数,把传进去的数组顺序先后执行, //并且把返回的数据先后放到数组data中 const timeout = ms => new Promise((resolve, reject) => { setTimeout(() => { resolve(); }, ms); }); const ajax

从之江实验室出发,18岁的阿里要做基础科研生力军

1999年9月9日,阿里巴巴成立了.2017年9月8日,阿里巴巴迎来了自己的18周年庆,数万名阿里员工从全球各地汇集到9月8日晚的杭州黄龙体育中心参加2017集团年会,包括来自21个国家的800多名外籍员工. 然而,阿里巴巴为自己准备的18周岁成年礼,却从半年前就已经开始.2017年3月9日,阿里巴巴首开杭州召开首届技术大会,动员公司两万多名技术人员投身"NASA"新技术战略:面向未来20年组建强大的独立研发部门,为服务20亿人的新经济体储备核心科技. 半年后的2017年9月6日,由浙

腾讯云服务器怎么样?腾讯云服务器详细测评

腾讯云服务器,简称 CVM 是通过高性能服务器虚拟化的云服务器.拥有专业团队打造资源隔离.数据安全.密码安全.安全加固等多达 20 种安全防护手段.其实就是和阿里云(ECS)差不多但技术不同的 VPS.以下我就用腾讯最低配带公网 IP 的这一套餐来评测一下吧(¥65/月)! 一.购买云服务器: 购买地址 ,下单后 2~3 分钟生成: 已经迫不及待了有木有呢?!接下来是小评测,跑分什么的. 二.硬盘读写.下载速度.跑分: 为了给大家一个全面的选择,准备了一些小数据给大家看.首先 CPU 使用的 E

cs硕士妹子找工作经历【阿里人搜等互联网】

摘自  北邮人论坛  分享他人成功的求职经历.原文如下: 唉,妹子本来是本着写面经的态度与大家分享,之自己情况也是想说明一啥都不会的菜鸟在悲催的逆境下也可以凭自身努力找到offer,没想到被评为作秀...妹子能力背景确实和说的一样,但是从9月开始不是天天熬夜看了一个多月的书吗?菜鸟也可以拼命锻炼翅膀的... 妹子还是把背景舍去,只写面经吧   妹子是cs土著一枚,折腾了半年找工作,现在貌似也是尘埃落定了,手里还有2个offer待定,还在纠结中. 妹子开始找工作时间挺晚,是9月7号左右,之前完全没

阿里云的智能视觉识别生意经,打算这么念

在2017年6月10日举行的云栖大会·上海峰会上,阿里云正式发布了"图像识别"和"人脸识别"两项视觉智能服务.视觉计算是阿里巴巴"NASA"计划的一部分,"NASA"计划聚焦于机器学习.芯片.IoT.操作系统.生物识别等核心技术领域,希望解决10年.20年后的挑战.虽然着眼于解决10年.20年后的挑战,但每新推出一项智能服务,阿里云都有一本自己的生意经. 智能视觉识别的生意经 在针对的目标市场方向,阿里云表示图像识别分为生物识

跑赢阿里云和百度,腾讯云凭啥刷新大数据国际记录?

2016年11月10日,具有计算奥运会之称的Sort Benchmark全球排序竞赛公布结果,其中,腾讯云用98.8秒完成100TB的数据排序,打破阿里云去年创造的329秒记录,以及更早前百度的716秒纪录,这引起了业界的关注. 众所周知,腾讯云直到最近几年才开始发力公有云和大数据业务,而阿里云早从2009年开始就已经大张旗鼓的发展云计算业务,进入2016年全力推进大数据业务.那么,腾讯云在2016年底刷新大数据国际比赛的纪录,是偶然事件还是确有过人之处?记者就此采访了腾讯云副总裁.腾讯数据平台

[阿里移动推荐算法]比赛_快速入门_4_19_update_仅供参考,思维不要受局限

[这里只讲快速入门——即破题,正负样本不平衡.特征数量等问题就自己多看论文或者其他资料吧~~如果还有数据挖掘相关基础知识不了解的,建议看看<数据挖掘导论>] [以下是理解错误案例]:错误的根本原因是不能保证训练集的构建逻辑与赛题目标保持一致,不能保证训练集和测试集的构建逻辑保持一致,不能保证离线评测的逻辑和线上保持一致! 1. 有同学在构建训练集的时候,为了给样本(即ui对)标上正负,不是根据分割点之后第一天的购买情况来对分割点之前的ui进行标记,而是根据分割点之前某个时间段内的购买情况进行标

阿里云服务器(ECS)优惠券领取

CoderMan的博客也是放置在阿里云的ECS上,速度绝对是刚刚的,大家打开的速度肯定不会慢. 有些同志们至今可能还在用虚拟主机吧,事实上阿里云服务器真心不贵,有俩种计费方式:分别是按月计费和按流量计费.想知道详细的阿里云服务器的参数,可以留言给我,我分享详细的测评,无意间看到阿里云优惠全界面,那就分享下吧. 阿里云服务器优惠券:链接在此. 阿里云服务器购买页面:链接在此. 有想买的想深入了解的,也可以留言给我,我将知无不言. 有几个域名要出手:大家有需要的请联系我,请移步这篇文章<出手几个自己

阿里云确认向12306提供了技术协助,负责承接12306网站75%的余票查询流量

公开数据显示,今年春运火车票售卖的最高峰日出现在2014年12月19日.12306网站访问量(PV值)达到破纪录的297亿次,平均每秒PV超过30万次.当天共发售火车票956.4万张,其中互联网发售563.9万张,占比59%,均创历年春运新高.阿里云计算日前予以确认,确实向12306提供了技术协助,负责承接12306网站75%的余票查询流量.至于合作的具体细节,阿里云方面称将适时对外公布. 12306网站曾被认为是“全球最忙碌的网站”,在应对高并发访问处理方面备受网民诟病.经此一役,阿里云计算将