蓝桥杯:赢球票

题目链接

目录

题目描述

输入描述

输出描述

输入输出样例

样例1

样例2

 题目分析:

        样例1:

        样例2:

        整体思路:

AC代码(Java):


题目描述

        某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。

        主持人拿出 N 张卡片(上面写着 1⋯N 的数字),打乱顺序,排成一个圆圈。

        你可以从任意一张卡片开始顺时针数数: 1,2,3 ⋯⋯

        如果数到的数字刚好和卡片上的数字相同,则把该卡片收入囊中,从下一个卡片重新数数。

        直到再无法收获任何卡片,游戏结束。囊中卡片数字的和就是赢得球票的张数。

        比如: 卡片排列是:1 2 3。

        我们从 1 号卡开始数,就把 1 号卡拿走。再从 2 号卡开始,但数的数字无法与卡片对上,很快数字越来越大,不可能再拿走卡片了。因此这次我们只赢得了 1 张球票。

        还不算太坏!如果我们开始就傻傻地从 2 或 3 号卡片数起,那就一张卡片都拿不到了。

        如果运气好,卡片排列是 2 1 3,那我们可以顺利拿到所有的卡片!

        本题的目标:已知顺时针卡片序列,随便你从哪里开始数,求最多能赢多少张球票(就是收入囊中的卡片数字之和)

输入描述

        第一行一个整数 N (N≤100),表示卡片数目。

        第二行 N 个整数,表示顺时针排列的卡片。

输出描述

        输出一行,一个整数,表示最好情况下能赢得多少张球票。

输入输出样例

        我多放一个样例,帮助大家理解,比赛很多时候都是只给出一个样例,所以我们要认真审题,理解题意。

样例1

输入

3
1 2 3

输出

1

样例2

输入

5 
1 3 5 2 4

 输出

15

 题目分析:

        我们先拿样例1和2来进行分析,同时方便大家理解。

        样例1:

        

         我们这时候有三个卡片,卡片的顺序如下,假如我们从第一个卡片开始数数(从1数到N,我把我们数的这个数叫做cur吧,如果卡片对应的数字和cur相同,那么就拿走这个卡片。

        如:

        因为我们拿走了一张卡片,我们就要重新从1开始数数,也就是令cur=1。 

        因为第一张卡片被我们拿走了,接下来我们只能从第二个卡片开始数数了。

       

         因为cur的值和第二个卡片的数字不相同,所以我们不能拿走这张卡片,我们需要继续往下数数。

        

        因为第一个卡片已经被我们拿走了,所以第三个卡片的下一个卡片应该就是第二个卡片,这也就是题目说的 顺时针卡片序列 的意思。

        接着看:

        cur和第二个卡片不相同,我们需要继续往下数数:

         

         当cur=4的时候,我们还需要往下数数嘛?应该不需要了吧,因为我们卡片最大也就是3,所以如果cur>3了,后面怎么数都不可能会有卡片的数字相同了,这时候就可以结束我们的数数了。

        如果还不明白,接下来我继续演示一下样例2为什么会得出15,如果看懂了,就可以自己去尝试写一下了哦。

        样例2:

        整体思路:

                因为涉及到频繁的删除,所以我们需要使用到列表来存储数据,每次我们拿走卡片,对应的就是删除列表中的当前元素。

                因为题目允许我们从任意一张卡片开始数数,也就是我们可以从列表之中的任意一个下标开始模拟数数这个过程,只需要找到我们可以拿到的卡片数字总和(每张卡片的值相加)。

                我们数数是从1开始的,一直向后数。但是我们的列表是有限的,所以我们需要一个变量来遍历列表,每次都要对这个变量进行求余,也就是 变量  = 变量 % 列表的长度。这样可以保证这个变量一直是在列表里面循环的。

                我们每次拿出卡片,也就是删除列表的元素之后,我们需要重新从1开始数数,也就是我上面提到的 令cur=1  ,这样重新开始数数。

                本题不难,主要是理解题目的意思就好。

AC代码(Java):

import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {static int n;static int res;public static void main(String[] args) {List<Integer> list = new ArrayList<>();//拿数据Scanner scan = new Scanner(System.in);n = scan.nextInt();for(int i = 0;i<n;i++) {int targe = scan.nextInt();list.add(targe);}scan.close();//每一个位置都需要搜索一次for(int i = 0;i<list.size();i++)find(new ArrayList<>(list),i);System.out.println(res);}//从startIndex开始数数,每次如果拿走了一个卡片,就要重修从1开始数数,从下一个开始数public static void find(List<Integer> list , int startIndex){int max = 0;int cur = 1; //我们需要从1开始数数,每次我们拿走了一个卡片,就要从下一个卡片,开始从1数继续数while(cur<=n && startIndex<list.size()){ //当cur大于n时候,代表我们的列表之中再也没有一个可以拿出来的卡片了//这里可以写剪枝,但没有必要(数据量不多),如果写,那就是记录当前list中的最大值,如果cur超过最大值,就结束循环if(list.get(startIndex) == cur){max += cur;cur = 1; //拿走卡片之后,要从1开始重新数数//然后删除当前这个位置list.remove(startIndex);}else {cur++;startIndex++;}//已经全部拿完了,就直接结束循环if(list.size() == 0) break;//我们需要控制startIndex的范围是在list的长度范围之内startIndex %= list.size();}//更新resres = Math.max(res,max);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20827.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习周报】

学习内容&#xff1a; instructGPTVLTinT: Visual-Linguistic Transformer-in-Transformer for Coherent Video Paragraph Captioning 学习时间&#xff1a; 1.9 ~ 1.14 遇到的问题&#xff1a; 强化学习策略的使用&#xff1a;只看懂了HMN代码&#xff0c;没有完全看懂VPM中…

【字节跳动】 https://job.bytedance.com/campus 内推码:MZ9BJHD 电话:13855119574 邮箱:yinxiang.stephen@bytedance.com

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

「GoTeam 招聘时间」字节跳动-代码中台团队招聘

本期招聘企业—字节跳动 公司团队简介 我们是字节跳动—基础架构—效能团队&#xff0c;通过探索更好的开发理念和开发实践&#xff0c;打造优秀的产品&#xff0c;改善开发者体验&#xff0c;持续提升研发效率及质量。 目前团队主要专注的方向包括 DevOps、代码托管、Cloud …

聊一聊字节跳动的面试

来源&#xff1a;https://zhuanlan.zhihu.com/p/82871762 一、算法题 一面&#xff1a; 1. lc 里最长上升子序列的变形题 2. 实现输入英文单词联想的功能 二面&#xff1a; 1.矩阵旋转&#xff0c;要求空间复杂度 O(1) 2.无序的数组的中位数。要求时间复杂度尽可能的小 二、计…

字节跳动架构师讲解Android开发!已成功拿下字节、腾讯、脉脉offer,含BATJM大厂

开头 程序员面试&#xff0c;除了面试技术外&#xff0c;有的公司经常会问应聘者和技术无关的问题&#xff0c;考验求职者的综合能力&#xff0c;并以此作为是否录用的依据&#xff0c;很多时候这类问题往往没有标准答案&#xff0c;就看求应聘者临场的反应能力如何。 张工是…

面试字节跳动,我被怼了。

作者丨三级狗 https://www.zhihu.com/question/31225105/answer/582508111 人们都说&#xff0c;这个世界上有两种人注定单身&#xff0c;一种是太优秀的&#xff0c;另一种是太平凡的。 我一听 呀&#xff1f;那我这岂不是就不优秀了吗&#xff0c;于是毅然决然和女朋友分了手…

一张图对比在腾讯、阿里、字节跳动工作的区别

本文经 BAT &#xff08;id:batfun&#xff09;授权转载 互联网人爱相互跳槽&#xff0c;腾讯和阿里一直相互流动&#xff0c;近两年势头强劲的字节跳动也成为跳槽热门去向&#xff0c;那么在这三家公司工作有什么区别呢&#xff1f;一起来看—— 旗舰产品 - 擅长领域 - 腾讯&a…

是的,阿里P7,腾讯T4,字节跳动总监都是你家亲戚!!!都在帮你们整理资料!!!

缘起 最近网上出现最多的文章就是&#xff0c;阿里P7大佬熬夜整理某资料&#xff0c;腾讯T4大佬良心分享某资料&#xff0c;字节总监耗时多少天整理的某资料&#xff0c;我笑了&#xff0c;这些大佬都是你家亲戚么&#xff0c;都在帮你们整理资料去了&#xff0c;都闲着没事干…

Android菜菜进字节跳动,居然是看了这个......

谈谈我的真实感受吧&#xff5e; 程序员真的是需要将终生学习贯彻到底的职业&#xff0c;一旦停止学习&#xff0c;离被淘汰&#xff0c;也就不远了。 金三银四、金九银十跳槽季&#xff0c;这是一个千年不变的话题&#xff0c;每到这个时候&#xff0c;很多人都会临阵磨枪&a…

QNAP严重漏洞可导致恶意代码注入

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01; 编译&#xff1a;代码卫士 QNAP提醒客户安装QTS和QuTS固件更新。该更新修复了一个严重漏洞 (CVE-2022-27596)&#xff0c;可导致远程攻击者在QNAP NAS设备上注入恶意代码。 该漏洞是“严重”级别的漏洞&#xff0c;C…

我和ChatGPT的对话记录

今日份调教&#xff08;他说他是GPT3&#xff09; 从莫种意义上来说&#xff0c;我撅得我还是有一手的&#xff0c;噗嗤 &#x1f60e; **

推荐4款非常实用的电脑软件

你是否曾经在使用电脑的过程中遇到过各种各样的问题&#xff1f;本文将为您推荐4款小众但非常实用的软件&#xff0c;或许能帮助您解决这些问题。 1.格式工厂 格式工厂是一款功能全面的格式转换软件&#xff0c;支持转换几乎所有主流的多媒体文件格式&#xff0c;包括视频 &a…

含泪推荐四款超级好用的电脑软件,值得收藏

1.极速下载工具—Internet Download Manager&#xff08;IDM&#xff09; Internet Download Manager简称IDM&#xff0c;是一款老牌的Windows系统下载工具&#xff0c;支持多媒体下载、自动捕获链接、自动识别文件名、静默下载、批量下载、站点抓取、视频下载等多种个性化的功…

这几款实用的电脑软件推荐给你

软件一&#xff1a;TeamViewer TeamViewer是一款跨平台的远程控制软件&#xff0c;它可以帮助用户远程访问和控制其他计算机、服务器、移动设备等&#xff0c;并且支持文件传输、会议功能等。 TeamViewer的主要功能包括&#xff1a; 远程控制&#xff1a;支持远程访问和控制…

亚马逊、eBay、沃尔玛、OZON、速卖通等平台如何实现自养号测评补单

现如今&#xff0c;跨境电商可谓是举步维艰&#xff0c;运营环境也是越来越复杂。但复杂的环境可以用两个字来概括买和刷。因为进行买卖或者补单从而增加销售促进排名&#xff0c;然后提高产品的权重。其实无论是销量还是评论不仅可以通过自然购买产生&#xff0c;也可以进行一…

亚马逊跨境商家会用的邮件管理软件—解孵

做亚马逊的朋友&#xff0c;在平时的运营中需要及时地回复邮件&#xff0c;邮件回复是否及时会影响到好评率和销量&#xff0c;所以亚马逊商家需要在24小时内回复邮件到买家。其实回复邮件并不难&#xff0c;困难的是在邮件过多或店铺过多的情况下&#xff0c;商家可能会漏回或…

亚马逊买家号二步验证怎么设置?

亚马逊提供了多种安全功能&#xff0c;其中包括买家账号的二步验证。启用二步验证可以提供额外的账户安全性&#xff0c;以确保只有经过授权的用户可以访问您的亚马逊买家账号。 要启用亚马逊买家账号的二步验证&#xff0c;请按照以下步骤进行操作&#xff1a; 1、登录亚马逊…

亚马逊自动测评软件:注册养号下单操作流程

想要亚马逊自动测评软件&#xff0c;可以使用亚马逊鲲鹏系统&#xff0c;亚马逊鲲鹏系统可以注册、养号、下单、留评&#xff0c;是一款专门针对亚马逊买家号所开发的软件。 想要做测评&#xff0c;当然就需要先有一批买家号的&#xff0c;买家号可以直接去网上购买成品后导入进…

亚马逊安全测评方法大全+自养买手号实操教程——AdsPower

测评是做跨境电商的卖家不可能不经历的事情。但是测评行业水深大家都知道&#xff0c;那么&#xff0c;作为卖家&#xff0c;如何安全的测评呢&#xff1f;今天我们就来聊聊如何送测&#xff1f;安全测评需要注意什么&#xff1f;&#xff08;PS&#xff1a;不想看上面科普的朋…

如何解决亚马逊、ebay砍单、封号问题?稳定测评方案分析

很多卖家和工作室朋友询问我为什么在测评过程中经常遇到砍单和封号的问题。实际上&#xff0c;这并不难理解&#xff0c;因为测评所涉及的技术问题很多&#xff0c;并不能仅通过解决IP或环境的单一因素来实现稳定的测评。 目前市面上存在许多技术方案&#xff0c;例如指纹浏览…