zoukankan      html  css  js  c++  java
  • 剑指offer42:和为S的两个数字

    题目描述

    输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

    输出描述:

    对应每个测试案例,输出两个数,小的先输出。

    自己的思路:有点麻烦,

    class Solution {
    public:
        vector<int> FindNumbersWithSum(vector<int> array,int sum) {
            vector<int> result; 
            int low = 0;
            int len = array.size()-1;
            int high = len;
            if(!array.size()||sum<array[low])
                return result;
            bool flag = false;
            //low指针从头到尾
            while(low<len){
                while(low<high){
                    flag = false;
                    //当当前两个数小于S时,退出
                    if(array[low]+array[high]<sum){
                        flag = true;
                        break;
                    }
                    if(array[low]+array[high]==sum){
                        result.push_back(array[low]);
                        result.push_back(array[high]);
                        return result;
                    }
                    high--;
                }
                low++;
                if(!flag)
                    high=len-low+1;
            }
            
            return result;
        }
    };

    评论区思路:

    import java.util.ArrayList;
    public class Solution {
        public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
            ArrayList<Integer> result = new ArrayList<>();
            if(array.length == 0||array[0]>=sum) return result;
            int low= 0;
            int high = array.length - 1;
            while(low<high){
                if(array[low]+array[high]==sum)
                {
                    result.add(array[low]);
                    result.add(array[high]);
                    return result;
                }else if(array[low]+array[high]<sum){
                    low++;
                }else{
                    high--;
                }
            }
            return result;
        }
    }
  • 相关阅读:
    python操作MySQL数据库
    用python监控您的window服务
    关于position定位中的几个注意点
    filter 滤镜
    git使用心得
    :after,:before,content
    outline和border
    《css揭秘》之背景与边框
    css权威指南学习笔记--第6章
    浅谈setTimeout和setInterval
  • 原文地址:https://www.cnblogs.com/ttzz/p/13623995.html
Copyright © 2011-2022 走看看