CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
(请不要删掉此地址)
努力是为了让自己不平庸,你参加过哪些竞赛,有哪些收获?快来分享一下你的参赛经历吧!
内容创作方向需围绕竞赛相关,如本次竞赛的bug,对CSDN竞赛的建议,以往参加各类编程竞赛的比赛经历等等,参考如下(不强制使用示例格式,可根据自身实际经历撰写,内容贴合主题):
第一次参加竞赛,没想象中的那么难,人总是要踏出第一步的
前言/背景
参赛前看了一下前五期的结果,发现参赛人数不多,奖品还挺多的,想着自己来稍微答一答,混一个奖品什么的,即使弄不到也无所谓,不亏什么,抱着这样的心态来试一试
大赛简介
看着像是刚开始组织的,没有leetcode参赛人数那么多,但是能看出来,每一期都在进步
参赛流程
我是周内报名的
周六早上花了不到一小时答完
后面就是等公布结果
然后就是发帖,获取领奖资格
参赛经历
感觉和自己平常答得leetcode里面的简单题差不多,有一道题卡了20分钟,其他的都很快答完了,整体上来说,不是很难,差点排到30名之外了,哈哈哈,刚好30名,nice
解题思路
需要注意,在解题时,要先写解。
哈哈哈,开玩笑的,从这次出的题来讲,整体难度偏低,所以在解题时,不是很难,但是一定要细心,要注意边缘条件的判断,往往就是那些特殊的一些值,导致了测试用例跑不全的问题出现,这是要特别注意的一点
经验心得
没什么需要准备的,就注意好我上面说的那条就好了。当然,首先必须得会一门高级语言,JAVA,Python,C,C++,JavaScript,都行,还有其他的,记不起来了
资料分享
可以先去学习一下数据结构和算法相关的知识,参加比赛时就会游刃有余了
一、严查枪火
题目描述:
X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。
小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)
解题思路
一个循环一个if就完了,没啥可说的
时间复杂度O(n)
空间复杂度O(1)
solution(n, vector) {
var result = 0;
for(let item of vector){
if(["ak","m4a1","skr"].includes(item)) result++;
}
return result;
}
二、鬼画符门
鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理,但是这次鬼艺接手了,你能帮鬼艺写一个
程序统计每年消耗数量最多的鬼画符吗?
解题思路
需要用到hash记录所有符纸的数量,最后找到最大的符纸就行了
时间复杂度O(n)
空间复杂度O(n)
solution(n, vector) {
var result;
let hash = {}
let max = 1
for(let i of vector){
if(hash[i]) {
hash[i]++;
max = Math.max(max,hash[i])
} else {
hash[i] = 1
}
}
for(let i of vector){
if(hash[i] == max) return i
}
return result;
}
三、收件邮箱
已知字符串str,str表示邮箱的不标准格式。其中”.”会被记录成”dot”,”@”记录成”at”。写一个程序将str转化成可用
的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)
解题思路
这里偷了个懒使用了字符串正则替换
我不知道正则替换该怎么计算复杂度,这里就不给出了
solution(str) {
var result;
result = str.replace(/^(.+?)at(.+)$/,"$1@$2")
result = result.replace(/dot/g,".").replace(/^\.(.*)/,"dot$1").replace(/(.*)\.$/,"$1dot")
return result;
}
四、最长递增的区间长度
给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9]最长区间2,3,8长度为3
解题思路
双for解君愁
时间复杂度O(n²)
空间复杂度O(1)
solution(n, arr) {
var result = 1;
for(let i=0; i<arr.length; i++){
let count = 1;
for(let j=i; i<arr.length; j++){
if(arr[j]-arr[j-1]>0) count++;
else break
}
result = Math.max(result,count)
}
return result;
}