当前位置: 首页 > 知识库问答 >
问题:

如何找到吃至少P个苹果所花的最小时间?请帮我针对这个问题优化代码

麻烨
2023-03-14

示例输出:6

解释:-

第1名成员将吃6个苹果(即1*6)

制约因素:-

1<=N<=10^5

1<=arr[i]<=10

代码:(注意:我需要帮助优化这个代码,同时降低时间复杂度)

import java.io.*; 
import java.util.*; 


class Main {
    public static void main (String[] args) throws IOException{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] str = br.readLine().split(" ");    
        String[] input = br.readLine().split(" "); 

        int n = Integer.parseInt(str[0]);  
        long p = Long.parseLong(str[1]);  
        long [] arr = new long [n];

        long max = 1000000000000L ;

        for(int i=0; i<n; i++) 
        {
            arr[i] = Long.parseLong(input[i]); 
        }
        
        
        for(long j=1;j<=max;j++){
            long sum=0;
            for(int i=0;i<n;i++){
                long rem=j/arr[i];
                sum=sum+rem;
                if(sum>=p){
                    System.out.println(j);
                    return;
                } 
            }  
        }

    }
}

共有1个答案

艾飞宇
2023-03-14

假设输入为arr={1,2,3,4},p=60

首先计算最小公分母(LCD),在本例中为12

现在计算一下,在12分钟的时间内,每分钟会吃多少苹果:

 类似资料:
  • 我试图通过扁平化视图层次结构来优化Android应用程序中的布局。这里有一个特别难的问题! 此布局有一个主线布局,用于容纳顶行和底行(它们本身就是水平的子线布局)。中间的四个项目中的每一个都是使用LayOut权重来展开的垂直相对性(以适应图像视图和文本视图)。包含两个项目的每一行也是一个水平线性布局。 不用说,这种布局效率非常低,在绘制时会导致许多“编排者跳过了帧”的消息。我想删除这些嵌套的布局,

  • 启动错误 ApplicationContext.若要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2019-10-17 15:44:43.968错误10460--[main]O.S.Boot.SpringApplication:应用程序运行失败 我的pom.xml:

  • 其目的是对用户输入的分数进行排序、显示和平均。我还没弄明白。如果你已经解决了这个问题,请帮忙。到目前为止,我已经尝试了这段代码,但它不起作用。 我从这段代码中得到的只是一个编译器错误。有人有什么建议吗?谢谢你。

  • 本文向大家介绍浅析char 指针变量char *=p 这个语句的输出问题,包括了浅析char 指针变量char *=p 这个语句的输出问题的使用技巧和注意事项,需要的朋友参考一下 学习指针的时候我一直有个疑惑,请看下面的代码: 但是,将int 改成char 类型就不会报错,可以输出字符串。同样是指针,这次为何没有输出地址(理应输出指针代表的地址,但是<<并没有重载地址输出的功能所以报错)呢? 原来