JSRUN 用代码说话
精选js
全部js
推荐多样性(逻辑分析:循环为windows输入元素:对每个输入数组进行取值操作,每次取n个值,然后将这n个元素分别放入到每一个window中,用idx控制输入元素个数,如果idx==n*k,立即停止循环。当list数组内的元素个数小于n时,需要像下一行借元素。然后再将这些元素都插入到window中,最后输出时将所有的window数组都拼成一个)


【篮球游戏】(双端队列:用一个队列记录数据;定义idx变量代表outpusArr中对应的数组元素。循环inputArr,每次的数据入队,入队后,判断队列的最左边元素与最右边元素是否为当前输出数组的outputs[idx],如果是,queue退出对应元素,idx指向outputArr的下一个元素;如果左右都不匹配,说明不能得出这个序列,推出循环。判断res长度是否与输入长度相等。如果相等,说明是正确答案,输出res,如果不是,说明无解)


宜居星球改造计划(不顶行输入及多源bfs算法:先while循环把matrix输入获取出来,然后遍历一次matrix,找到need数量(No的值),。然后将yes的坐标入栈,初始为第一层。按层判断四个方向是否为NO,如果为NO,就入队。每层结束后,如果need>0,day++;当所有循环结束后,如果need不为0,则输出-1;否则输出day)


【解压报文】(定义四个栈:strStack:用来存储输入中的字母;numStack:用来存储计算过的数字(就是循环次数);repeatNumStack:用来临时存放读取到的数字;idxStack:用来存放重复拼接字符串时,strStack中的开始位置。读取字符串str的每一个元素,当遇到字母时,压入strStack;当读取到‘[’时,说明前面的循环次数num已经读取完毕,把repeatNum中的所有元素组成一个数字压入numStack中,清空repeatNum;然后记录当前字符串栈的长度到idxStack,这个长度就是后面遇到第一个']'时要重复元素在str中的起始位置。当遇到']'时,直接读取idx.pop(),numStack.pop()组成一个新的字符串,重新压回strStack。最后循环结束后输出strstack)


【加密算法】(dfs+回溯:循环二维数组,当找到明文的第一个数组时,使用dfs算法,dfs对四个方向(上、左、右、下)开始递归寻找,如果找到就返回true,找不到就回溯,将visited[i][j]重置为false并将path中的下标组移除。最后path中的结果就是答案)