本文主要是介绍网易俄罗斯方块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://www.nowcoder.com/test/question/9407e24a70b04fedba4ab3bd3ae29704?pid=11908654&tid=17622427
小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。
荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分。
有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数。
输入描述:
第一行两个数 n, m
第二行 m 个数,c1, c2, ... , cm , ci 表示第 i 个方块落在第几列
其中 1 <= n, m <= 1000, 1 <= ci <= n
输出描述:
小易这局游戏获得的分数
输入例子1:
3 9
1 1 2 2 2 3 1 2 3
输出例子1:
2
完美AC
#include <iostream>
using namespace std;int main()
{int col = 0;int count = 0;cin >> col >> count;int* location = new int[count];//动态申请数组的意思int* colNum = new int[col+1];//桶排序的思想无处不在for (int i = 1; i <= count; i++){cin >> location[i];colNum[location[i]] += 1;}int ret = colNum[1];for (int i = 1; i <= col; i++){if (colNum[i] <= ret)ret = colNum[i];}cout << ret;return 0;
}
我自己写的,出现堆栈问题,发现主要是初始化数组的问题。
而大神用的是C++动态数组
#include<stdlib.h>
#include<stdio.h>
#include<string.h>int main()
{int col=0;int numb=0;scanf("%d %d\n",&col,&numb);int data[100]={'\0'};int bucket[100]={'\0'};for(int i=1;i<=numb;i++){scanf("%d",data[i]);bucket[data[i]]+=1;}int st=bucket[1];for(int i=1;i<=col;i++){if(bucket[i]<st)st=bucket[i];}printf("%d\n",st);//system("pause");return 0;
}
这篇关于网易俄罗斯方块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!