题解 | #获得最多的奖金#

获得最多的奖金

https://www.nowcoder.com/practice/247f7bd088764aefa7474cff27489095

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int left=0,right=n-1;
        long lo=nums[0],hi=nums[n-1],res=0;;
        while(left<right){
            if(lo<hi){
                left++;
                lo+=nums[left];
                
            }
            else if(lo>hi){
                right--;
                hi+=nums[right];
                
            }
            else{
                if(res<lo)
                    res=lo;
                left++;
                lo+=nums[left];
                right--;
                hi+=nums[right];
            }
        }
        System.out.println(res);
    }
    
双指针方法
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:23
转人工😡
门口唉提是地铁杀:五次握手了
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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