题目类型为20题选择题+3题编程题,选择题记不清了,编程题如下。
题目一
图片像素扩展,输入数据中,第一行有两个数,第一个数为N,表示矩阵的宽高,第二个数为K,表示每个像素点的扩展倍速,接下来的[1, N - 1]行,每行分别有N个数,即为输入数组,输出扩展后的数组。示例如下:
1 | 输入: |
解题思路及个人代码:
思路:模拟扩展过程
代码:
1 | let first = readline().split(' '); //acm模式需处理输入输出 |
题目二
输入数据为一个字符串,其中仅包含0或1,找出两个字串,使得这两个字串中1和0的数量相同且最大,字串可以部分重叠但不能完全相同,题目保证输入有解,请输出两个字串的开始位置和结束位置(字符串起始位置为1)。示例如下:
1 | 输入: |
解题思路及个人代码:
思路:滑动窗口,哈希表保存过程状态(结果还是timeout了,只能跑到84%的用例结束)
代码:
1 | let str = readline(); |
题目三
小熊在道路上捡金币。输入数据中,第一行有两个数,第一个数为N,表示道路的长度(单位米),第二个数为K,表示小熊的起始位置,第二行有N个数,分别表示每个位置上的金币数量。小熊每次可以移动1米或者不移动,在停留在某个格子时,每次捡起1金币,当某个位置金币为0时,小熊无法到达那个位置也无法跳过那个位置,小熊从起始位置出发时可以不捡起始位置的金币,求小熊最终可以获得最多的金币数量,要求小熊从起点K出发最终回到起点K。示例如下:
1 | 输入: |
解题思路及个人代码:
思路:动态规划(应该是吧)
代码:
1 | let first = readline().split(" "); |