遞增數(shù)組中尋找和正好是S的數(shù)

  1. 輸入一個(gè)遞增排序的數(shù)組和一個(gè)數(shù)字S,在數(shù)組中查找兩個(gè)數(shù),使得他們的和正好是S,如果有多對(duì)數(shù)字的和等于S,保存他們的下標(biāo)。
  2. 輸入一個(gè)遞增排序的數(shù)組和一個(gè)數(shù)字S,在數(shù)組中查找兩個(gè)數(shù),使得他們的和正好是S,如果有多對(duì)數(shù)字的和等于S,輸出兩個(gè)數(shù)的乘積最小的。

首先,這是一個(gè)有序的遞增數(shù)組。從頭到尾,首尾相加,求是否大于求和的值,然后進(jìn)行調(diào)整。如果小于了左邊可以右移,大于S的話右邊界左移。

#include <iostream>
#include <vector> 
using namespace std;
//找出所有和為定值的數(shù)的下標(biāo)  從1計(jì)數(shù)
vector< pair<int,int>> getSumNum(vector<int> &arr,int Sum)
{
    vector<pair<int,int>> vec;
    int i,j;
    int len = arr.size()-1;
    for(i = 0, j = len; i < j ;)
    {
        if(arr[i] + arr[j] == Sum){
            vec.push_back(make_pair(i+1,j+1));
            i++;
            j--;
        }
        else if(arr[i] + arr[j] < Sum)
            i++;
        else
            j--;
    }
    return vec;
}
//找乘積最小就是第一個(gè),如果是乘積最大就求中位數(shù)的兩個(gè)值比較一下就OK啦 
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
        vector<pair<int,int>>  temp = getSumNum(array,sum);
        vector<int> result;
        result.push_back(array[temp[0].first-1]);//從0計(jì)數(shù)
        result.push_back(array[temp[0].second-1]);
        return result;
}

int main(){
    vector<int> n={1,2,4,5,7,9,11};
    vector<pair<int,int>>  temp = getSumNum(n,9);
    for(auto t:temp){
        cout<<t.first<<" "<<t.second<<endl;
    } 
    vector<int>  tp = FindNumbersWithSum(n,9);
    for(auto t:tp){
        cout<<t<<endl;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,303評(píng)論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,828評(píng)論 0 15
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,740評(píng)論 18 399
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個(gè)記錄插入到已排序好...
    依依玖玥閱讀 1,354評(píng)論 0 2
  • 今天是紀(jì)臺(tái)二中軍訓(xùn)的第二天,同學(xué)們經(jīng)過(guò)昨天一天的軍訓(xùn)體驗(yàn),第二天同學(xué)們已經(jīng)基本成型,但是我們還是對(duì)他們不能放松,...
    你大爺?shù)臐L閱讀 471評(píng)論 0 0

友情鏈接更多精彩內(nèi)容