vivo 3.8 java

Vivo第一题生产手机
public static int solution(int n){
        int i = 1;
        int sum = 0;
        while(n-i>0){
            sum+=i*i;
            n = n-i;
            i++;
        }
        sum+=n*i;
        return sum;
    }
Vivo第二题最小正整数m
 public static int solution(int n){
        if(n<10){
            return n;
        }
        for (int i = 9; i >0 ; i--) {
            if(n%i==0){
                return solution(n/i)*10+i;
            }
        }
        return -1;
    }



#vivo2020春招##vivo##笔试题目#
全部评论
大佬代码很简洁
点赞 回复
分享
发布于 2020-03-08 18:59
这是我第一题的做法,时间复杂度O(1) public static int solution(int n) {         int x = (int)Math.sqrt(2 * n) - 1;         int rest = n - (x + 1) * x / 2;         int result = x * (x + 1) * (2 * x + 1) / 6;         result += rest * (x + 1);         return result;     }
点赞 回复
分享
发布于 2020-03-08 19:34
联想
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
2 1 评论
分享
牛客网
牛客企业服务