zoukankan      html  css  js  c++  java
  • 和为s的两个数字

    题目描述

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

    输出描述:

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

    解题:双重循环

    c++代码如下:
    class Solution {
    public:
        vector<int> FindNumbersWithSum(vector<int> array,int sum) {
         int cj=99999;
         vector<int> res;   
            for(int i=0;i<array.size();i++){
             for(int j=i+1;j<array.size();j++){
                 if(array[i]+array[j]==sum&&array[i]*array[j]<cj){
                  res.clear();//注意要清空之前的元素偶
                  res.push_back(array[i]);
                  res.push_back(array[j]);
                  cj=array[i]*array[j];   
                 }
             }
         }return res;   
        }
    };

     

    class Solution {
        public int[] twoSum(int[] nums, int target) {
    
           int len = nums.length;
           int i=0,j=len-1;
           while(i<j){
               if(nums[i]+nums[j]>target){
                   j--;
               }else if(nums[i]+nums[j]<target){
                   i++;
               }else{
                   return new int[]{nums[i],nums[j]};
               }
           }
           return new int[]{-1,-1}; 
    
        }
    }

    不一样的烟火
  • 相关阅读:
    [Codeforces 1290C]Prefix Enlightenment
    [JLOI 2015]战争调度
    [APIO 2010]特别行动队
    [CEOI 2004]锯木厂选址
    [USACO 08MAR]土地购买
    [HNOI 2017]大佬
    [NOI 2011]NOI 嘉年华
    [SHOI 2013]超级跳马
    [NOI 2005]瑰丽华尔兹
    [SCOI 2010]股票交易
  • 原文地址:https://www.cnblogs.com/cstdio1/p/11240046.html
Copyright © 2011-2022 走看看