我鶸鰯才升到lv3<img src="/images/smiles/icon_cry.gif"/>
class myclass { private final int base; private int current; public myclass(int base,int current){ this.base = base < 0 ? 0 : base > 15 ? 15 : base; this.current = current < 0 ? 0 : current > 30 ? 30 : current; } public int getvalue(){ return base + current; } public void changemyclass(int input){ current = current/2 + (input < 0 ? 0 : input); }}
lv1、写一个方法 int getbase(myclass myclass);输出myclass的base值。
lv2、写一个方法 list<integer> max(myclass myclass, list<integer> list);输出一个的list,使结果list能达到如下效果:选择原list中任意个数放入结果list,按照结果list的顺序,进行changemyclass的操作,可以使最终的getvalue得到最大值。
lv3、写一个方法 list<integer> minsum(int wantedvalue, myclass myclass, list<integer> list);输出一个的list,使结果list能达到如下效果:选择原list中任意个数放入结果list,按照结果list的顺序,进行changemyclass的操作,可以使最终的getvalue大于等于wantedvalue,且结果list中所有数的和最小。若不存在结果,抛出异常。
lv4、写一个方法 list<integer> minmax(int wantedvalue, myclass myclass, list<integer> list,int limit);输出一个的list,使结果list能达到如下效果:选择原list中小于等于limit数量的数放入结果list,按照结果list的顺序,进行changemyclass的操作,可以使最终的getvalue大于等于wantedvalue,且结果list中最大的数比其他结果list的最大数都小,若相等,比较第二大的数,以此类推。若不存在结果,抛出异常。
lv5、
class mypairclass{ myclass myleftclass; myclass myrightclass; public mypairclass(int base,int current){ myleftclass = new myclass(base,current); myrightclass = new myclass(base,current); }}class pairint{ int left; int right; public pairint(int left, int right){ this.left = left; this.right = right; }}
试写出list<pairint> minsum(pairint wantedvalue, mypairclass mypairclass, list<pairint> list);
和list<pairint> minmax(pairint wantedvalue, mypairclass mypairclass, list<pairint> list,int limit);