和為定值的兩個陣列元素

2021-08-10 05:05:38 字數 1423 閱讀 2832

在陣列中找到和為定值的兩個數,返回陣列下標。

這個題目就是乙個排序的問題,但是不能改變陣列,用快排的方式儲存陣列的索引值即可,上**。

#include 

#include

#include

#include

using

namespace

std;

void quicksort_index(int *arr, int *index, int low, int high)

index[i] = tmp;

quicksort_index(arr, index, low, i-1);

quicksort_index(arr, index, i+1, high);

}void get_two_sum_index(int *arr, int *index_arr, int len, int two_sum, std::vector

&ivec)

else

if (two_sum > arr[i] + arr[j]) else

}}int main(int argc, char *argv)

;int arr = ;

int len = sizeof(arr) / sizeof(int);

std::cout

<< "array data"

<< std::endl;

int *index_arr = new

int[len];

int i = 0;

for (i = 0; i < len; i++)

std::cout

<< std::endl;

quicksort_index(arr, index_arr, 0, len-1);

for (i = 0; i < len; i++)

std::cout

<< std::endl;

for (i = 0; i < len; i++)

std::cout

<< std::endl;

int two_sum = 111;

std::cout

<< "to get two sum: "

<< two_sum << std::endl;

std::vector

ivec;

get_two_sum_index(arr, index_arr, len-1, two_sum, ivec);

std::vector

::iterator iter;

int min_val;

int max_val;

for (iter = ivec.begin(); iter != ivec.end(); iter++)

return

0;}

陣列 尋找和為定值的兩個數

題目描述 給定乙個陣列和乙個整數,要求在陣列中找到兩個數,使得它們的和為這個整數.方法 排序夾逼 首先使用快速排序演算法把陣列按公升序排列,然後使用夾逼的方法找到答案.即使用兩個指標分別指向陣列的頭和尾 begin,end 1.若arr begin arr end sum 就輸出 2.若arr be...

尋找和為定值的兩個數

尋找和為定值的兩個數 給定乙個陣列 無序或者有序,兩種情況都要考慮 找出和為m的兩個數。最多時間複雜度能有多少?陣列有序的情況,在時間複雜度上我們就省去了排序的o nlogn 我們使用兩端指標掃瞄法是比較簡單的,時間複雜度為o n 空間複雜度為o 1 如下圖所示 然後,判斷它們指向的值之和sum是否...

尋找和為定值的兩個數

描述 輸入乙個陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。分析 如果採取窮舉,複雜度為o n 2 可以換乙個思...