剑指 Offer 57 - II. 和为s的连续正数序列
package leetcode; import java.util.ArrayList; import java.util.List; public class offer_57_2 { public int[][] findContinuousSequence(int target) { int left=1; int right=1; target=target*2; int sum; int num; //滑动窗口 List<int[]> array=new ArrayList<int[]>(); while(left<=right&&right<target/2) { sum=left+right; num=right-left+1; if(sum*num==target) { int[] li=new int[right-left+1]; int index=0; for(int i=left;i<=right;i++) { li[index]=i; index++; } array.add(li); right=right+1; continue; } //小于target滑动右边界 if(sum*num<target) { right=right+1; continue; } //大于target滑动左边界 if(sum*num>target) { left=left+1; continue; } } if(target%2!=0) { int li[]= {target/2,target/2+1}; array.add(li); } int[][] list=new int[array.size()][target/2]; for(int i=0;i<array.size();i++) { list[i]=array.get(i); } return list; } public static void main(String[] args) { // TODO Auto-generated method stub offer_57_2 off=new offer_57_2(); off.findContinuousSequence(15); } }