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

大气网站后台界面网站建设系统网站自助建站系统

大气网站后台界面,网站建设系统网站自助建站系统,阿里云服务器租用价格表,网站建设文字设计题目 A 公司准备对他下面的 N 个产品评选最差奖, 评选的方式是首先对每个产品进行评分,然后根据评分区间计算相邻几个产品中最差的产品。 评选的标准是依次找到从当前产品开始前 M 个产品中最差的产品,请给出最差产品的评分序列。 输入描述…

题目

A 公司准备对他下面的 N 个产品评选最差奖,
评选的方式是首先对每个产品进行评分,然后根据评分区间计算相邻几个产品中最差的产品。
评选的标准是依次找到从当前产品开始前 M 个产品中最差的产品,请给出最差产品的评分序列。

输入描述
第一行,数字 M,表示评分区间的长度,取值范围是 0<M<10000
第二行,产品的评分序列,比如 [12,3,8,6,5],产品数量 N 范围是 0 < N <10000

输出描述
评分区间内最差产品的评分序列

用例

输入输出说明
3
12,3,8,6,5
3,3,5
 
12,3,8 最差的是 3
3,8,6 最差的是 3
8,6,5 最差的是 5

思考

       固定大小数字区间在一串数字序列上从左到右移动,求区间中最小数字。可以把这个移动的区间看成滑动窗口,因此可以用滑动窗口思想求解。通过左右指针控制窗口收缩和扩张,收缩时窗口最左侧元素移出,扩张时外部元素移入窗口最右侧。每次移动窗口计算最小数字,左指针定义为 i,则窗口中最小数字为Math.min(...data.slice(i , i + M))。JavasScript API 调用很简单,但数据量比较大时切片和求最小值 API 也是有性能影响的。最好的方式是维护一个单调队列(双端队列)来快速获取最小值。

算法过程

  1. 输入处理:解析窗口长度 M 和评分数组 nums。
  2. 初始化单调队列:用于存储下标,保证队列内元素对应的评分单调递增。
  3. 遍历数组
    • 对于每个元素 \(nums[i]\),从队列尾部移除所有评分大于等于 \(nums[i]\) 的下标(维持单调性)。
    • 将当前下标 i 加入队列尾部。
    • 移除队列头部超出窗口范围的下标(即下标 \(\leq i-M\))。
    • 当遍历到下标 \(i \geq M-1\) 时,队列头部即为当前窗口的最小值下标,记录 \(nums[队列头部]\) 到结果。
  4. 输出结果:按顺序返回所有窗口的最小值。时间复杂度:\(O(N)\),每个元素最多入队和出队一次。空间复杂度:\(O(M)\),队列中最多存储 M 个元素。

参考代码

function solution() {const M = parseInt(readline());const nums = readline().split(',').map(Number);const n = nums.length;const res = [];const deque = []; // 单调队列,存储下标,对应评分递增for (let i = 0; i < n; i++) {// 维持队列单调递增:移除尾部所有大于等于当前值的下标while (deque.length > 0 && nums[deque[deque.length-1]] >= nums[i]) {deque.pop();}deque.push(i);// 移除超出窗口范围的下标(窗口范围:[i-M+1, i])while (deque[0] <= i - M) {deque.shift();}if (i >= M - 1) {res.push(nums[deque[0]]);}}console.log(res.join(','));
}const cases = [`3
12,3,8,6,5`,
];// let data = [];
// for (let i = 1; i < 10000; i++) {
//   data.push(Math.floor(Math.random() * 10000));
// }
// cases.push(`890
//   ${data}`);let caseIndex = 0;
let lineIndex = 0;const readline = (function () {let lines = [];return function () {if (lineIndex === 0) {lines = cases[caseIndex].trim().split("\n").map((line) => line.trim());}return lines[lineIndex++];};
})();cases.forEach((_, i) => {caseIndex = i;lineIndex = 0;solution();
});


文章转载自:

http://LetOiFka.rzmLc.cn
http://rsLVCdiS.rzmLc.cn
http://Ul7af3e5.rzmLc.cn
http://vMsJ4oVs.rzmLc.cn
http://4dEkqn7y.rzmLc.cn
http://36Fgx8Yq.rzmLc.cn
http://tAIO0IbI.rzmLc.cn
http://1eDFnL35.rzmLc.cn
http://VS1vVViu.rzmLc.cn
http://SBNedygi.rzmLc.cn
http://EOT31KGf.rzmLc.cn
http://3wIIpUNg.rzmLc.cn
http://83yzalpI.rzmLc.cn
http://UzjB2zrt.rzmLc.cn
http://WFrBKC3S.rzmLc.cn
http://ogxVf4mI.rzmLc.cn
http://WqxJIn7S.rzmLc.cn
http://dL39K9Vb.rzmLc.cn
http://XRkGPIxB.rzmLc.cn
http://I0KSNmwW.rzmLc.cn
http://c4eUJ0sV.rzmLc.cn
http://BY7WEgwv.rzmLc.cn
http://aswFPNRR.rzmLc.cn
http://37hY4rm6.rzmLc.cn
http://ntO1UWdy.rzmLc.cn
http://bfAepzws.rzmLc.cn
http://7usb244h.rzmLc.cn
http://IadkyXex.rzmLc.cn
http://f4R1rIgh.rzmLc.cn
http://fOX82kfj.rzmLc.cn
http://www.dtcms.com/wzjs/749097.html

相关文章:

  • 怀化网站建设设计网站做好了怎么做后台管理
  • 哈尔滨网站建设方案服务公司网页制作具体做什么
  • 东莞 网站 建设 雕塑Wordpress aws 博客
  • 辽宁省住房与城乡建设厅网站北京商场客流恢复六成
  • 网站的功能性做网站需要网站负责人
  • wordpress官网登录百度seo网站在线诊断
  • 建立网站要准备多少钱wordpress文章描述
  • 做网站的业务员企业品牌推广网站
  • top wang域名做网站好担路网做网站多少钱
  • 吉大建设工程学院官方网站学做吃的的网站
  • 东莞微网站建设多少钱网站说建设中
  • 自己办网站审批流程网络营销工具主要类型有
  • 湖南手机版建站系统哪个好公司自己的网站叫什么
  • 郑州网站建设老牌公司dart语言做的网站
  • 网站建设和商城有什么好处房地产公司如何网站建设
  • php做网站难么做图片的网站都有哪些
  • 泰州品牌网站建设产品营销软文
  • 网站搭建平台流程php网站建设论文答辩
  • 交易所开发深圳网站制作建设银行网站会员基本信息
  • 亦庄网站建设价格网站设置支付宝在线支付
  • 周口网站建设哪家好海口模板建站哪家好
  • 汉中城乡建设网站首页公司网站建设优帮云
  • 国外做袜靴的网站做文案的人看什么网站
  • 建设厅网站的无法打印贸易公司网站建设
  • wordpress页面标题网站seo步骤
  • 登录建设银行网站打不开免费网站建设公司联系方式
  • 世界杯消息哪个门户网站做的好上海传媒公司总裁李健
  • 网站建设合同 免责声明wordpress 搭建wiki
  • 设计高端网站哪家好预算有哪些网站做私活
  • 生成拼贴的网站网站建设公司业务培训