参考回答:
public class Select {public static void main(String[] args) {int[] a = {2,3,3,3,4};int max = 0;for(int i=0;i<a.length;i++) {if(max<a[i])max=a[i];}int[] num = new int[max+1];for(int i=0;i<a.length;i++) {num[a[i]]++;}System.out.println(maxSum(1,max,num));}public static int maxSum(int start, int end, int[] num){int[] sum = new int[end+1];sum[1] = num[1]*1;sum[2] = Max(num[1]*1,num[2]*2);sum[3] = Max((num[1]*1+num[3]*3),num[2]*2);for(int i=4;i<end+1;i++) {sum[i] = Max(num[i]*i+sum[i-2],num[i-1]*(i-1)+sum[i-3]);}return sum[end];}public static int Max(int m, int n){if(m>n)return m;else return n;}}



