问!谁能帮我解这道java题?感谢····write a program that reads an unspecified number of integers and finds the one that has the most occurrences. your input ends when the input is -1.for example, if you entered 2 3 40 3 5 4 7 3 3 2 -1, the number 3 occurred most often. enter one number at a time. if several numbers have the most occurrences, all of them should be reported. for example, if both 9 and 3 occur the same times, both should be reported. [tonymmm (10-9 2:05, Long long ago)] [ 传统版 | sForum ][登录后回复]1楼
Try hisImplement in Linked List, with each node containing a number and its frequency.
Whenever a number is input, it tries to find it if it's in the List.
If so, add its frequency by 1.
If not, add a tail containing the number into the Linked List and set its frequency to 1.
At the end, scan the whole List and try to find out the nodes containing max frequency.[辰星 (10-9 3:43, Long long ago)]
[ 传统版 |
sForum ][登录后回复]2楼
If there is no memory limitationYou can use a array which is large enough. Use the input number as index and update the corresponding element.[香陵居士 (10-9 9:41, Long long ago)] [ 传统版 | sForum ][登录后回复]3楼
B+ tree better...[今夜独自发呆 (10-9 10:44, Long long ago)] [ 传统版 | sForum ][登录后回复]4楼
(引用 辰星:Try hisImplement in Linked List, with each node containing a number and its frequency. Whenever a number is input, it tries to ...)Linear search is expensive[cigar (10-9 16:37, Long long ago)] [ 传统版 | sForum ][登录后回复]5楼
(引用 cigar:Linear search is expensive)But for his question it is ok.it's not such like a complex system[辰星 (10-9 23:37, Long long ago)] [ 传统版 | sForum ][登录后回复]6楼
Use HashtableConvert the input value and the occurrence as Integer, use input value as Key and occurrence as Value, for every input, if you can find in the hashtable, increase the occurrence, if not, just put it in. The rest should be very easy.[豫北闲人 (10-10 11:51, Long long ago)] [ 传统版 | sForum ][登录后回复]7楼