当前位置: 首页 > wzjs >正文

展开描述建设一个网站的具体步骤揭阳seo快速排名

展开描述建设一个网站的具体步骤,揭阳seo快速排名,合肥 网站建设,wordpress 免费 博客主题问题描述 有 n 位玩家在进行比赛,玩家编号依次为 0 到 n - 1 。 给你一个长度为 n 的整数数组 skills 和一个 正 整数 k ,其中 skills[i] 是第 i 位玩家的技能等级。skills 中所有整数 互不相同 。 所有玩家从编号 0 到 n - 1 排成一列。 比赛进行方式如…

问题描述

有 n 位玩家在进行比赛,玩家编号依次为 0 到 n - 1 。

给你一个长度为 n 的整数数组 skills 和一个  整数 k ,其中 skills[i] 是第 i 位玩家的技能等级。skills 中所有整数 互不相同 。

所有玩家从编号 0 到 n - 1 排成一列。

比赛进行方式如下:

  • 队列中最前面两名玩家进行一场比赛,技能等级 更高 的玩家胜出。
  • 比赛后,获胜者保持在队列的开头,而失败者排到队列的末尾。

这个比赛的赢家是 第一位连续 赢下 k 场比赛的玩家。

请你返回这个比赛的赢家编号。

示例

示例 1:

输入:skills = [4,2,6,3,9], k = 2

输出:2

解释:

一开始,队列里的玩家为 [0,1,2,3,4] 。比赛过程如下:

  • 玩家 0 和 1 进行一场比赛,玩家 0 的技能等级高于玩家 1 ,玩家 0 胜出,队列变为 [0,2,3,4,1] 。
  • 玩家 0 和 2 进行一场比赛,玩家 2 的技能等级高于玩家 0 ,玩家 2 胜出,队列变为 [2,3,4,1,0] 。
  • 玩家 2 和 3 进行一场比赛,玩家 2 的技能等级高于玩家 3 ,玩家 2 胜出,队列变为 [2,4,1,0,3] 。

玩家 2 连续赢了 k = 2 场比赛,所以赢家是玩家 2 。

示例 2:

输入:skills = [2,5,4], k = 3

输出:1

解释:

一开始,队列里的玩家为 [0,1,2] 。比赛过程如下:

  • 玩家 0 和 1 进行一场比赛,玩家 1 的技能等级高于玩家 0 ,玩家 1 胜出,队列变为 [1,2,0] 。
  • 玩家 1 和 2 进行一场比赛,玩家 1 的技能等级高于玩家 2 ,玩家 1 胜出,队列变为 [1,0,2] 。
  • 玩家 1 和 0 进行一场比赛,玩家 1 的技能等级高于玩家 0 ,玩家 1 胜出,队列变为 [1,2,0] 。

玩家 1 连续赢了 k = 3 场比赛,所以赢家是玩家 1 。

提示:

  • n == skills.length
  • 2 <= n <= 10^5
  • 1 <= k <= 10^9
  • 1 <= skills[i] <= 10^6
  • skills 中的整数互不相同。

问题分析:

周赛的第二题,我现在的实力也就做做第一第二题。。。这道题和1535. 找出数组游戏的赢家 - 力扣(LeetCode)题是一模一样的,就是返回值略有不同。我的解法是纯纯的模拟,用一个双端队列来模拟这个比赛全流程。每次取出队首两个元素进行比较,胜者继续留在队首,败者去队尾,一直到决出胜者。这里要注意,由于k可能非常大,所以我们要进行剪枝,去除不必要的循环,主要就是当一个人,他获胜的次数已经超过了数组元素的个数,那无论再怎么循环下去,都是他会成为最终胜者。

代码如下:

class Solution {
public:int findWinningPlayer(vector<int>& skills, int k) {//    当k==1时特殊处理,返回0和1之间的胜者下标if(k == 1){return skills[0] > skills[1] ? 0 : 1;}int n = skills.size();deque<pair<int, int>> Q;//    使用pair类型存下标和对应skillfor(int i = 0; i < n; ++i){Q.push_back({i, skills[i]});}int ans = 0;int res = -1;while(ans != k){//    取队首两个元素pair<int, int> F = Q.front();Q.pop_front();pair<int, int> S = Q.front();Q.pop_front();//    如果第一个元素大于第二个,++ans。if(F.second > S.second){++ans;Q.push_front(F);Q.push_back(S);}//    如果第二个元素大于第一个,ans重置为1else{ans = 1;Q.push_back(F);Q.push_front(S);}//    满足条件就退出循环,1535就是把F.first改成F.second就行if(ans > n || ans == k){res = F.first;break;}}return res;}
};

http://www.dtcms.com/wzjs/93304.html

相关文章:

  • 做网站一般按什么报价软文范例200字
  • 兰州最新疫情seo优化工具
  • 自己服务器做网站服务器备案今日北京新闻
  • 金融公司网站建设模板国内的搜索引擎有哪些
  • 济南网站优化推广方案河南网站seo费用
  • 八步网站建设网络平台运营是做什么的
  • 深圳住房和城乡建设局网站网络营销成功的品牌
  • 中国4a广告公司100强江东seo做关键词优化
  • 哪些是大型网站和生活app下载安装最新版
  • 哪个公司做企业网站好百度推广工作好干吗
  • 网站建设 生产百度搜索引擎入口登录
  • 重庆外贸网站建设公司免费网站怎么做出来的
  • 网站上线前的准备工作线下营销推广方式有哪些
  • 深圳的网站建设产品关键词大全
  • vs2005做的网站转换为2012怎样建立个人网站
  • 网站命名规范推广方案范例
  • 做网站后期怎么维护网络营销总监岗位职责
  • 外贸网站建设升上去免费正规的接单平台
  • 网站建设 标准安卓优化大师app下载安装
  • 网站备案查询 优帮云网站查询信息
  • 做网站窗体属性栏设置文字居中关键词优化排名用什么软件比较好
  • 网页栅格化怎么做seo查询网站是什么
  • 自助建站系统无任何限制微信推广平台哪里找
  • 财务费是指企业为施工生产郑州网站优化公司
  • 招远网站设计什么是seo如何进行seo
  • 淄博网站优化揭阳市seo上词外包
  • 教育网站制作视频网络舆情处置的五个步骤
  • 公司网站需求分析谷歌搜索引擎免费入口镜像
  • 淮南 网站建设 有限公司互联网外包公司有哪些
  • 北京西站是高铁站吗优化网站首页