子数组之和

来源:互联网 发布:ubuntu系统升级 编辑:程序博客网 时间:2024/04/25 02:13
 给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置
There is at least one subarray that it's sum equals to zero.
样例

给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3].


import java.util.ArrayList;import java.util.Scanner;/** *  * 给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置There is at least one subarray that it's sum equals to zero.样例给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3]. * @author Dell * */public class Test138 {  public static ArrayList<Integer> subarraySum(int[] nums)  {    ArrayList<Integer> list=new ArrayList<>();  for(int i=0;i<nums.length;i++)  {     int sum=nums[i];     if(sum==0)     {     list.add(i);     list.add(i);     return list;      }for(int j=i+1;j<nums.length;j++){ sum=sum+nums[j];  if(sum==0)  {  list.add(i);  list.add(j);  return list;  }}  }  return list;  }public static void main(String[] args) {    Scanner sc=new Scanner(System.in);      int n=sc.nextInt();      int[] a=new int[n];      for(int i=0;i<a.length;i++)      {      a[i]=sc.nextInt();        }      ArrayList<Integer> list=subarraySum(a);         System.out.println(list);}}


原创粉丝点击