Re: [理工] [DS]99師大 軟體基礎(自寫版)
看板Grad-ProbAsk作者DavyBlue (Nothing at all)時間15年前 (2011/03/17 21:57)推噓3(3推 0噓 1→)留言4則, 4人參與討論串2/4 (看更多)
: 13. 有點不是很懂在幹嘛
針對第13題
這跟今年成大最後一題好像
我的想法是
令兩個array C[0..k-1] D[0..k-1]
C[i]存放數值為i+1的個數
D[j]存放value為1~j+1的個數和
然後只要求D[b-1]-D[a-1]+C[a-1]就會是range[a,b]的數值個數
Algo:
pre-process(int[] a,int[] c,int[] d){
for(int i=0 ; i<n ;i++){
c[a[i]]+=1;
}
for(int j=0 ; j<k ;j++){
if(j==0) d[j] = c[j];
else
d[j]=d[j-1]+c[j];
}
}
getCount(int a,int b){
return d[b-1]-d[a-1]+c[a-1];
}
--
我想說的是 如果我這樣寫沒錯
為啥我成大程設才25分 完全沒道理阿...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.211.210
推
03/17 21:58, , 1F
03/17 21:58, 1F
推
03/17 22:36, , 2F
03/17 22:36, 2F
推
03/17 22:45, , 3F
03/17 22:45, 3F
→
03/17 23:14, , 4F
03/17 23:14, 4F
※ 編輯: DavyBlue 來自: 114.36.211.210 (03/17 23:33)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):