和为S的连续正数序列

ゝ一世哀愁。 2022-05-24 00:00 311阅读 0赞

这里写图片描述

  1. import java.util.ArrayList;
  2. public class Solution {
  3. //双指针思路
  4. public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
  5. ArrayList<ArrayList<Integer> >arrayList =new ArrayList<>();
  6. if(sum<3){
  7. return arrayList;
  8. }
  9. int pHigh=2,pLow=1;
  10. while(pHigh>pLow)
  11. {
  12. int cur=(pHigh+pLow)*(pHigh-pLow+1)/2;
  13. if(cur<sum)
  14. pHigh++;
  15. if(cur==sum){
  16. ArrayList<Integer>arr=new ArrayList<Integer>();
  17. for(int i=pLow;i<=pHigh;i++){
  18. arr.add(i);
  19. }
  20. arrayList.add(arr);
  21. pLow++;
  22. }
  23. if(cur>sum)
  24. pLow++;
  25. }
  26. return arrayList;
  27. }
  28. public static void main(String[]args){
  29. //System.out.println("Hello");
  30. int sum=100;
  31. Solution s=new Solution();
  32. ArrayList<ArrayList<Integer>>arr=s.FindContinuousSequence(sum);
  33. for(ArrayList<Integer>arr2:arr)
  34. {
  35. for(int i:arr2)
  36. {
  37. System.out.print(i+" ");
  38. }
  39. System.out.println();
  40. }
  41. }
  42. }

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,311人围观)

还没有评论,来说两句吧...

相关阅读

    相关 S连续正数序列

    题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100