题目
题意:给出一个数组a[],判断添加多少个数可以使得该数组没有为0的段
代码:
package 练习;
import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
static Scanner sc=new Scanner(System.in);public static void main(String[] args) {
int n=1;for(int i=0;i<n;i++) {
show();}} private static void show() {
int n=sc.nextInt();Set<Long>set=new HashSet<>();//建立一个Set判断是否有相同的数,如果有则说明有为0的段,需要添加一个大数解决问题set.add(0L);long s=0;int ans=0;for(int i=0;i<n;i++) {
int x=sc.nextInt();s+=x;if(set.contains(s)) {
ans++;set=new HashSet<>();//更新setset.add(0L);s=x;}set.add(s);}System.out.println(ans);}
}