牛客编程巅峰赛S2第1场 - 青铜&白银&黄金 牛牛数组

牛牛组数

https://ac.nowcoder.com/acm/contest/9004/C

import java.util.*;
import java.math.BigInteger;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 返回最大和的字符串
     * @param x string字符串 即题目描述中所给字符串
     * @param k int整型 即题目描述中所给的k
     * @return string字符串
     */
 public   String Maxsumforknumers (String x, int k) {
            // write code here
        String a="";
        char [] xx=x.toCharArray();
        Arrays.sort(xx);
        BigInteger bi=new BigInteger("0");
       // System.out.println(xx);
        for(int i=xx.length-1;i>=0;i--) {
            if(i>k-1)
                a+=xx[i];
            else if(i==k-1)
            {
                a+=xx[i];
                BigInteger bi2=new BigInteger(a);
                bi=bi.add(bi2);
            }
            else {
                BigInteger bi3=new BigInteger(xx[i]+"");
                bi=bi.add(bi3);
            }

        }
        return bi.toString();
    }

}

1.将字符串转为char数组
2.用Arrays.sort()进行排序,现在最大的数都排在后面
3.要k个数相加和最大,则先从后往前取到第k-1个数,再将剩下的数一个一个加起来,直接用大整数相加BigInteger.add(),方便快捷

全部评论

相关推荐

点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务