美文网首页
57-从连续的正数序列中找出两数, 和为s

57-从连续的正数序列中找出两数, 和为s

作者: 一方乌鸦 | 来源:发表于2020-05-07 09:38 被阅读0次
  1. 和为s的两个数字.
    输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int head = 0;
        int tail = nums.length - 1;
        while(head <= nums.length - 1) {
            int sum = nums[head]  + nums[tail];
            if (sum == target) {
                return new int[]{nums[head], nums[tail]};
            } else if (sum > target) {
                tail--;
            } else {
                head++;
            }
        }
        return new int[0];
    }
}
  1. 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。

序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。

求连续序列,考虑使用滑动窗口

public class Solution {
    private LinkedList<Integer> tmp = new LinkedList<>();
    private ArrayList<ArrayList<Integer>> list = new ArrayList<>();
    
    public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
        if (sum <= 2) return list;
        int k = 0;
        for (int i = 1; i <= sum / 2 + 1; i++) {
            tmp.add(i);
            k += i;
            if (k == sum) {
                list.add(new ArrayList<Integer>(tmp));
            }
            while(k > sum) {
                int first = tmp.removeFirst();
                k -= first;
                if (k == sum) {
                    list.add(new ArrayList<Integer>(tmp));
                }
            }
        }
        return list;
    }
}

相关文章

  • 57-从连续的正数序列中找出两数, 和为s

    和为s的两个数字.输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和...

  • 和为s的连续整数序列

    找出所有和为S的连续正数序列输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序

  • Java日记2018-05-20

    第一题 和为 S 的连续正数序列 输出所有和为 S 的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从...

  • 面试题57_2:和为S的连续正数序列

    和为s的连续正数序列 输入一个正数s,打印出所有何为s的连续正数序列(至少含有两个数)。 例如输入15,由于1+2...

  • 剑指offer 41-45

    41.和为S的连续正数序列 这个题最直观的想法就是从1,2开始用枚举法算出所有的连续正数序列的和,直到第一个数和第...

  • 11-15题

    11、和为S的连续正数序列输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序...

  • 4.7 双指针问题(1)

    方法 暂无 注意点 暂无 目录 和为S的连续正数序列(很经典) 和为S的连续正数序列 小明很喜欢数学,有一天他在做...

  • 【剑指Offer 41】和为s 的连续正数序列

    题目:输入一个正数s,打印出所有和为s 的连续正数序列(至少两个数)。 代码如下: 来源:http://blog....

  • 和为S的连续正数序列

    题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不...

  • 和为S的连续正数序列

    题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并...

网友评论

      本文标题:57-从连续的正数序列中找出两数, 和为s

      本文链接:https://www.haomeiwen.com/subject/eqgcghtx.html