题解 | #二叉树的后序遍历# 双指针

获得最多的奖金

http://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();
        int[] arr = new int[n];
        for(int i=0;i<arr.length;i++){
            arr[i] = sc.nextInt();
        }
        long ans = 0;
        int l=0,r=n-1;
        long lnum=arr[l],rnum=arr[r];
        while(r>=l){
            if(lnum<rnum){
                lnum+=arr[++l];
            }else if(lnum>rnum){
                rnum+=arr[--r];
            }else{
                ans = lnum;
                lnum+=arr[++l];
                rnum+=arr[--r];
            }
        }
        System.out.println(ans);
        
    }
}
全部评论
这个似乎有点问题,若是5个数字,前两个和后两个相等,那么你这个算***把中间的数字分别划到左右两边,虽然也能过题解,但是我理解是不对的 在此我在你的基础上改进了一下,若是我的思路错误,还请大佬指正 public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for(int i=0;i<arr.length>l){ if(lnum<rnum>rnum){ rnum+=arr[--r]; }else{ if (r==l){ break; } ans = lnum; rnum+=arr[--r]; } } System.out.println(ans); }</rnum></arr.length>
点赞 回复 分享
发布于 2023-05-07 21:05 北京

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务