华为第一题只有30%?

我的思路是先把9减完,然后可以被4整除就直接除,有哪里不对吗
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println(getRe(n));
    }

    public static int getRe(int n) {

        int count = 0;
        int min = 4;
        int max = 9;
        while (n > 0) {
            if (n >= max && (n % min) != 0) {
                n -= max;
                count++;
            } else {
                if ((n / 4) != 0 && (n % 4) == 0) {
                    count += n / 4;
                    n = 0;
                } else {
                    n = -1;
                }
            }
        }
        if (n < 0) {
            return -1;
        }
        return count;
    }
}


#华为##笔试题目#
全部评论
第一题100%   第二题  50  第三题  80  public class Main3 {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int ret = n/9;         int s = n%9;                  for(int i=ret;i>=0;i--) {             int y4 = n-i*9;             int y = y4%4;             if(y!=0) {                 continue;             } else {                 System.out.println(i+y4/4);                 return;             }         }         System.out.println(-1);         return;              }     } 
点赞 回复 分享
发布于 2019-09-04 21:33
动态规划,不一定是这样 比如说12, = 3 * 4      vector<int> tmp(n+1, 10000);     tmp[4] = 1;     tmp[9] = 1;     for(int i=10; i<n+1; ++i)     {         tmp[i] = 1 + min(tmp[i-4], tmp[i-9]);     }     if(tmp[n] > 10000)         cout << -1 << endl;     else     {                  cout << tmp[n] << endl;     }     
点赞 回复 分享
发布于 2019-09-04 21:27

相关推荐

牛马人的牛马人生:500一天吗?香麻了
投递字节跳动等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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