< CSDN周赛解析:第 27 期 >

news2025/1/11 14:47:34

在这里插入图片描述

CSDN周赛解析:第 27 期

  • 👉 前言
  • 👉 第一题: 幸运数字
    • > 解析
    • > 解决方案
    • > 拓展知识
  • 👉 第二题: 投篮
    • > 解析
    • > 解决方案
  • 👉 第三题: 通货膨胀-x国货币
    • > 解析
    • > 解决方案
  • 👉 第四题: 最后一位
    • > 解析
    • > 解决方案
  • 往期内容 💨


👉 前言

各位卷王们好! 基于最近比较经常接触算法相关的编程题,所以于前天,也就是CSDN第27期周赛。报名参加了,为了记录一下自己在哪里跌倒,特此打算新开一个栏目,名为: CSDN周赛解析

希望大伙不要吝啬,三连支持一下呀!

👉 第一题: 幸运数字

小艺定义一个幸运数字的标准包含3条:

  1. 仅包含4或7。
  2. 幸运数字的前半部分数字之和等于后半部分数字之和。
  3. 数字的长度是偶数。

> 解析

根据题目可以得出,幸运数字有三条规则判定,本题较为简单,配合解决方案更好理解!

> 解决方案

具体解析均有注释,方便日后查漏补缺!

class Solution {
	solution(n) {
		// 通过将数字转换成数值数组,方便利用数组自带的函数
		var arr = String(n).split('').map(item => Number(item))
		// TODO: 请在此编写代码
		/*
			判断1:通过取余的方式,判断是否为偶数
			判断2:通过数组函数filter会返回符合逻辑语句的数组,判断前后的长度是否相同来判断,是否符合幸运数字均为4 或 7 的判断
		*/
		if(arr.length%2 != 0 || arr.filter(item => (item == 4 || item == 7)).length !== arr.length) {
			return 'No'
		}

		/*
			通过数组函数slice(indexStrat, indexEnd), 截出一个新的数组(需要注意,slice()和splice()的区别),将幸运数字分割成前后两部分,进行累加对比
			
		*/
		if(arr.slice(0,(arr.length/2)).reduce((prev, curr) => prev + curr) != arr.slice(arr.length/2, arr.length).reduce((prev, curr) => prev + curr)) {
			return 'No'
		}
		return 'YES'
	}
}
var str_0 = readline().trim();
var n = parseInt(str_0);
let sol = new Solution();
result = sol.solution(n);
print(result);

在比赛时,这道题是存在bug的,bug是返回Yes时字母是全部大写的,而No只有首字母是大写的。当时不够细心,没测出来,以为是编码问题。可惜了,只拿到6分。

> 拓展知识

在使用slice()splice()时,需要注意二者的区别,虽然它们都是对于数组对象进行截取,但是二者还是存在明显区别。具体如下:

  • 函数参数上slicesplice第一个参数都是截取开始位置, slice第二个参数是截取的结束位置(不包含), 而splice第二个参数(表示这个从开始位置截取的长度)。
  • slice 不会对原数组产生变化, 而 splice 会直接剔除原数组中的截取数据 ! splice 更多被用于对原数组的增删改

👉 Array.prototype.splice() 详细

👉 Array.prototype.slice() 详细

👉 < Javascript中数据处理小技巧 — 数组篇 >

👉 第二题: 投篮

小明投篮,罚球线投球可得1分,在三分线内投篮得分可以得到2分,在三分线以外的地方投篮得分可以得到3分,连续投进得分累计,一旦有一个球没投进则得分清零,重新计算。

现给出所有得分记录(清零不计入得分),请你计算一下小明最多连续投进多少个球?

> 解析

根据题目可以得出,投篮得分总共有三种得分方式,分别是: 罚球线 + 1、三分线内 + 2、三分线外 + 3。

那么我们可以通过让当前分数,分别 + 1,+2, +3后,和下一个得分总和相比。如果相等,证明是成功进球了的。

> 解决方案

具体解析均有注释,方便日后查漏补缺!

class Solution {
	solution(n, arr) {
		/*
			result 用于记录最多连续进球数
			curr  用于记录当前最多连续进球数
			因为是记录得分了,只要记录得分的arr数组长度不等于0,初始值就为1。
		*/
		const INITVAL = arr.length !== 0 ? 1 : 0
		var result = INITVAL
		var curr = INITVAL
		// 循环投球次数,将得分数组按照进球得分的三种分类,逐个比对。
		// 只要有一个相等则为进球,否则重置当前连续进球数
		for(let times = 0; times < n; times++ ) {
			// 比较当前连续进球数和全局最高连续进球数
			result = Math.max(result, curr)
			if(arr[times]+1 == arr[times+1] || arr[times]+2 == arr[times+1] || arr[times]+3 == arr[times+1])
			{
				curr++
			} else {
				curr = INITVAL
			}
		}
		// TODO: 请在此编写代码
		return result;
	}
}
var str_0 = readline().trim();
var n = parseInt(str_0);
var str_1 = readline();
var line_list_1 = str_1.trim().split(" ");
var arr = new Array();
for(var i = 0; i < line_list_1.length; i++){
	arr[i] = parseInt(line_list_1[i]);
}
let sol = new Solution();
result = sol.solution(n, arr);
print(result);

👉 第三题: 通货膨胀-x国货币

X国发行货币最高面额为n。 次高面额为n的因子。
以此类推,X国最多发行多少种货币。

> 解析

根据题目可以得出,这题是考我们对因子概念。

在数学中,如果整数A除B,得出结果是没有余数的整数,就称B是A的因子。

比如8的因子有1,2,4和8。

根据题目分析,说是次高面额为n的因子,然后以此类推。 那么这里的n是会变化的,在取到因子后,需要更新n为当前面额数为n。例子如下:

最高面额为10的货币,第一个因子为5, 而5的因子,只有1和它本身,但货币种类不能重复,故只有三种,分别为 10块,5块,1块。

> 解决方案

具体解析均有注释,方便日后查漏补缺!

class Solution {
	solution(n) {
		var result = 0;
		// 定义当前的最高面额值为n
		let curr = n
		for(let num = n; num >= 1; num--) {
			// 通过取余的方法判断是否为因子
			if(curr%num == 0) {
				curr = num
				result++
			}
		}
		// TODO: 请在此编写代码
		return result;
	}
}
var str_0 = readline().trim();
var n = parseInt(str_0);
let sol = new Solution();
result = sol.solution(n);
print(result);

👉 第四题: 最后一位

小明选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。

在整个过程中,小明会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum。

例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564.

小明现在给出一个sum,小明想让你求出一个正整数X经过上述过程的结果sum.

> 解析

根据题目可以得出,最后的和,是根据逐位擦除的数相加,那么这个数必然小于sum。由此,我们可以通过循环这个sum值,将值根据逐位除于10相加,判断是否等于sum,以此来判断是否符合条件。

> 解决方案

具体解析均有注释,方便日后查漏补缺!

class Solution {
	solution(X) {
		var result = 0;
		// TODO: 请在此编写代码
		while (X > 0) {
	        result += X;
	        X /= 10;
	    }
		return result;
	}
}
var str_0 = readline().trim();
var sum = parseInt(str_0);
let sol = new Solution();
result = sol.solution(sum);
print(result);

不难看出,一个数的sum一定比这个数本身大,所以结果就在0到sum之间。

测试数据比较水,直接使用暴力模拟法,即可通过此题。


往期内容 💨

🔥 < 每日算法 - JavaScript解析:二叉树灯饰【初识动态规划 - dp, 具体理解配合代码看最合适,代码均有注释】 >

🔥 < 每日算法 - Javascript解析:经典弹珠游戏 >

🔥 < 每日算法 - JavaScript解析:从尾到头打印链表 >

🔥 < JavaScript技术分享: 大文件切片上传 及 断点续传思路 >

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字展陈技术,让珍贵馆藏资源走出深闺

这篇文章来自于笔者2017年发表在《档案时空》第12期的一篇文章&#xff0c;原名为《数字展陈技术在档案展览中的应用》。 档案时空 时隔5年&#xff0c;数字视觉技术的发展突飞猛进&#xff0c;特别是这两年元宇宙浪潮席卷全球&#xff0c;VR/AR/MR技术的综合应用给受众带来非一…

【PyTorch】教程:对抗学习实例生成

ADVERSARIAL EXAMPLE GENERATION 研究推动 ML 模型变得更快、更准、更高效。设计和模型的安全性和鲁棒性经常被忽视&#xff0c;尤其是面对那些想愚弄模型故意对抗时。 本教程将提供您对 ML 模型的安全漏洞的认识&#xff0c;并将深入了解对抗性机器学习这一热门话题。在图像…

Java程序设计-ssm企业财务管理系统设计与实现

摘要系统设计系统实现开发环境&#xff1a;摘要 对于企业集来说,财务管理的地位很重要。随着计算机和网络在企业中的广泛应用&#xff0c;企业发展速度在不断加快&#xff0c;在这种市场竞争冲击下企业财务管理系统必须优先发展&#xff0c;这样才能保证在竞争中处于优势地位。…

from文件突然全部变为类cs右击无法显示设计界面

右击也不显示查看设计器 工程文件 .csproj中将 <Compile Include"OperatorWindows\Connection.cs" /> <Compile Include"OperatorWindows\Connection.Designer.cs"> <DependentUpon>Connection.cs</DependentUpon> &…

CV——day74 读论文:关注前景的anchor-free交通场景探测器

FII-CenterNet&#xff1a;关注前景的anchor-free交通场景探测器FII-CenterNetI. INTRODUCTIONII. RELATED WORKC. Detectors Exploiting Segmentation InformationIII. FII-CENTERNET APPROACHA. 前景区域建议网络(Foreground Region Proposal Network)1) 上分支提出前景区域2…

linux称手的终端管理器Zsh(Z shell)-图文安装超详细

linux默认的shell太low了&#xff0c;iTerm2在macOS系统简直堪称终端管理神器&#xff0c;有一款可以平替iTem2的linux开源软件 Zsh&#xff08;Z shell&#xff09; &#xff0c;Zsh 是一个为交互使用而设计的 shell 一&#xff1a;安装Zsh 1.yum安装zsh yum install zsh安装…

频谱分析仪测量噪声系数方法介绍

用频谱仪测量噪声系数&#xff1a;测量框图为&#xff1a;基于噪声系数的定义得到的一个测量公式为&#xff1a;NFPNOUT-(-174dBm/Hz20lg(BW)Gain)(1)公式中&#xff0c;PNOUT是已测的总共输出噪声功率&#xff0c;-174dBm/Hz是290oK&#xff08;室温&#xff09;时环境噪声的功…

视频号小店新订单如何实时同步企业微信

随着直播带货的火热&#xff0c;视频号小店也为商家提供商品信息服务、商品交易&#xff0c;支持商家在视频号运营电商&#xff0c;许多企业也将产品的零售路径渗透至视频号小店中了。如果我们希望在视频号小店接收到订单后&#xff0c;能尽快及时发货&#xff0c;给用户较好的…

filter属性详解

filter属性详解 filter 属性定义了元素(通常是<img>)的可视效果(例如&#xff1a;模糊与饱和度)。 filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();下面运用…

【金三银四系列】Spring面试题-上(2023版)

Spring面试专题 1.Spring应该很熟悉吧&#xff1f;来介绍下你的Spring的理解 有些同学可能会抢答&#xff0c;不熟悉!!! 好了&#xff0c;不开玩笑&#xff0c;面对这个问题我们应该怎么来回答呢&#xff1f;我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍…

由 GPT 驱动的沙盒,尽情发挥想象力! #NovelAI

一个由 GPT 驱动的沙盒&#xff0c;供用户尽情发挥想象力的空间&#xff0c;会获得怎样的体验&#xff1f;NovelAI NovelAI 是一项用于 AI 辅助创作、讲故事、虚拟陪伴的工具。NovelAI 的人工智能算法会根据用户的方式创建类似人类的写作&#xff0c;使任何人&#xff0c;无论能…

《爆肝整理》保姆级系列教程python接口自动化(十一)--发送post【data】(详解

简介  前面登录的是传 json 参数&#xff0c;由于其登录机制的改变没办法演示&#xff0c;然而在工作中有些登录不是传 json 的&#xff0c;如 jenkins 的登录&#xff0c;这里小编就以jenkins 登录为案例&#xff0c;传 data 参数&#xff0c;给各位童鞋详细演练一下。 一、…

【操作系统】操作系统IO和虚拟文件系统VFS

1.什么是操作系统的IO 输入&#xff08;input&#xff09;和输出&#xff08;output&#xff09;&#xff0c;就是对磁盘的读&#xff08;read&#xff09;和写&#xff08;write&#xff09;。 I/O模式可以划分为本地IO模型&#xff08;内存、磁盘&#xff09;和网络IO模型。…

测试的阶段性小小总结

转眼入职2年之余&#xff0c;毕业后就投入测试行业。在日常的工作中也有自己的一些思考和总结。2021到2023是多变的两年&#xff0c;加入教培行业&#xff0c;受双减政策影响&#xff0c;注定艰难。参与了各种类型的测试项目&#xff0c;不断在探索和前行&#xff0c;万变不离其…

C++ —— 多态

目录 1.多态的概念 2.多态的定义及实现 2.1构成多态的两个硬性条件 2.2虚函数的重写 2.3override和final 3.抽象类 3.1接口继承和实现继承 4.多态原理 4.1虚函数表 4.2原理 4.3静态绑定和动态绑定 5.单继承和多继承体系的虚函数表 5.1单继承体系的虚函数表 5.2多继…

【MyBatis】第七篇:动态sql

mybatis中的动态sql&#xff0c;其实就是在mybatis中映射配置文件中通过if等判断语句写sql。现在聊一下&#xff0c;常用的的判断语句。 前面准备&#xff1a; CREATE TABLE student (sid int DEFAULT NULL,sname varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general…

2023年深圳/东莞/惠州CPDA数据分析师认证报名入口

CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证&#xff0c;它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者&#xff0c;具有广泛的社会认知度和权威性。 无论是地方政府引进人才、公务员报考、各大企业选聘人才&#xff0c;还是招投标加…

计算机网络-传输层

文章目录前言概述用户数据报协议 UDP(User Datagram Protocol)传输控制协议 TCP(Transmission Control Protocol)TCP 的流量控制拥塞控制方法TCP 的运输连接管理TCP 的有限状态机总结前言 本博客仅做学习笔记&#xff0c;如有侵权&#xff0c;联系后即刻更改 科普&#xff1a…

LeetCode经典问题总结笔记—一文搞懂滑动窗口和哈希表结合使用之3. 无重复字符的最长子串问题(第一篇)

今日主要总结一下可以使用滑动窗口和哈希表结合使用解决的一道题目&#xff0c;3. 无重复字符的最长子串 题目&#xff1a;3. 无重复字符的最长子串 Leetcode题目地址 题目描述&#xff1a; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示…

华尔街分析师:斗鱼2023财年前景暗淡,但盈利能力有望提升

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 华尔街预计斗鱼2023财年收入前景悲观 根据S&P Capital IQ的一致性数据&#xff0c;华尔街卖方分析师预计&#xff0c;斗鱼&#xff08;DOYU&#xff09;的收入将从2022财年的71.93亿元下降到2023财年的67.53亿元&#x…