兩數(shù)和
題意是給出一個數(shù)組,輸出和為k的兩個數(shù)孕暇。數(shù)組為無序的
三數(shù)和
從給定的數(shù)組中找三個數(shù),讓它們的和為某個值。
和為s的連續(xù)的正整數(shù)
小明很喜歡數(shù)學(xué),有一天他在做數(shù)學(xué)作業(yè)時,要求計算出9~16的和,他馬上就寫出了正確答案是100溪猿。但是他并不滿足于此,他在想究竟有多少種連續(xù)的正數(shù)序列的和為100(至少包括兩個數(shù))钩杰。沒多久,他就得到另一組連續(xù)正數(shù)和為100的序列:18,19,20,21,22。現(xiàn)在把問題交給你,你能不能也很快的找出所有和為S的連續(xù)正數(shù)序列? Good Luck!
import java.util.ArrayList;
public class Solution {
ArrayList<ArrayList<Integer> > list = new ArrayList<ArrayList<Integer>>();
public void numberSeqSum(int sum){
if(sum==0) System.out.println("no");
int small = 1;
int big = 2;
int mid = (sum+1)/2;//至少兩個數(shù)
int total = small+big;
while(small<mid&&small<big){
if(total==sum){
ArrayList<Integer> l = new ArrayList<Integer>();
for(int i=small;i<=big;i++){
l.add(i);
}
list.add(l);
//System.out.println(small+" "+big);
big++;
total = total+big;
}else if(total < sum){
big++;
total = total + big;
}else{
total = total - small;
small++;
}
}
}
public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
if(sum==1||sum==2) return list;
numberSeqSum(sum);
return list;
}
}