Given an integer array nums and an integer k, return true if nums has a continuous subarray of size at least two whose elements sum up to a multiple of k, or false otherwise.
public boolean checkSubarraySum(int[] nums, int k) {
		    int currentSum = 0;
		    Map<Integer, Integer> remainders = new HashMap<Integer, Integer>();

		    if(k == 0) return false;
		    
		    for(int i=0; i < nums.length; i++) {
		      currentSum += nums[i];
		      if(currentSum%k == 0) return true;
		      if(remainders.containsKey(currentSum%k)) 
		        if(i - remainders.get(currentSum%k) > 1)return true;

		      remainders.put(currentSum%k, i);
		 
		    }

		    return false;
	  }
	  
	  public int fibon(int n) {
		    if (n<0) return -1; 
		    if (n == 1 || n == 0) return 1;
		    return fibon(n-1) + fibon(n-2);    
	  }	  
	  
	  public int sums(int[] seq, int sum) {
		    int csum = 0, right = 0, left = 0;
		    boolean notfound = true;

		    while(right < seq.length && notfound) {
		      for(int i = right; i < seq.length; i++) {   
		        csum +=seq[i];
		        if(csum == sum) {left = i; notfound=false; break;}
		        if(csum > sum) { csum=0; break;}
		      }
		      csum=0;
		      right++;
		      
		    }

		    if(notfound) {right=1; left = -1; }
		    int[] res = Arrays.copyOfRange(seq,right-1, left+1);
		    
		    System.out.println(Arrays.toString(res));
		    System.out.println(right-1);
		    System.out.println(left);
		    System.out.println(notfound);


		    return 0;
		}