offer(一): 俄羅斯方塊成功次數輸出 C++實現
阿新 • • 發佈:2018-11-28
題目連結:https://www.nowcoder.com/test/question/done?tid=20189002&qid=224352
題目描述:
小易有一個古老的遊戲機,上面有著經典的遊戲俄羅斯方塊。因為它比較古老,所以規則和一般的俄羅斯方塊不同。
熒幕上一共有 n 列,每次都會有一個 1 x 1 的方塊隨機落下,在同一列中,後落下的方塊會疊在先前的方塊之上,當一整行方塊都被佔滿時,這一行會被消去,並得到1分。
有一天,小易又開了一局遊戲,當玩到第 m 個方塊落下時他覺得太無聊就關掉了,小易希望你告訴他這局遊戲他獲得的分數。
思路:
設定為N列,則
定義一個1*N的陣列,每一列落下方塊時,對應陣列位置+1,最後取陣列的最小值
程式碼:
#include<iostream> #include <string> #include<vector> #include<algorithm> using namespace std; int min(vector<int>vec) { sort(vec.begin(),vec.end(),less<int>()); return vec[0]; } int main() { int n; int m; while(cin>>n>>m) { vector<int>vec(n,0); for(int i=0;i<m;++i) { int input; cin>>input; vec[input-1]++; } cout<<min(vec)<<endl; } system("pause"); return 0; }
優秀程式碼欣賞:
連結:https://www.nowcoder.com/questionTerminal/9407e24a70b04fedba4ab3bd3ae29704 來源:牛客網 利用count和sort列表操作函式 n = int(input("input n:")) m = int(input("input m:")) c = [] while m > 0 : c.append(int(input("input c[]:"))) m-=1 a = range(n) d = [] for i in a : d.append(c.count(a[i]+1)) d.sort() print(d[0])
連結:https://www.nowcoder.com/questionTerminal/9407e24a70b04fedba4ab3bd3ae29704
來源:牛客網
'''
思路: 送分題。建立一個長為n的list命名為record,遍歷一遍A,
將各個位置上加一,遍歷結束後,最小值即為得分。
'''
# 讀入資料
n,k =list(map(int, input().split()))
A =list(map(int, input().split())) # A = [a1,a2,a3,...an]
record =[0 for i in range(n)]
for i in A:
record[i-1] +=1
print(int(min(record)))