在公升序陣列中查詢和為特定值的兩個數

2021-06-03 14:42:40 字數 452 閱讀 6044

思路,從左和右同時遍歷陣列,如果左右相加大於n,則說明右邊的值偏大,則右指標左移;如果比n小,則左指標右移;總共對陣列只需要遍歷一遍。

/*在乙個公升序陣列中查詢兩個數,使得他們的和為已知數n,時間複雜度o(n)*/

/*返回距離最近的一對*/

int* find(int *array , int len , int n)

if( array[left] != array[left+1] ) ++left;

else if( array[right] != array[right-1] )--right;

else }}

if( mindis == len )

re[0] = array[maxleft];

re[1] = array[minright];

return re;

}

在排序陣列中查詢和為給定值的兩個數字

14 題目 輸入乙個已經按公升序排序過的陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。思路 由於陣列為公升序,因...

在排序陣列中查詢和為定值的兩個元素

題目 已知乙個已經按公升序排好序的陣列,現在輸入乙個數值sum,在陣列中查詢兩個數,使得這兩個數的和正好是輸入的sum,列印出這兩個數,如果存在多對這樣的數,依次列印出來。如 array 輸入sum 28,那麼列印出 8,20 10,18 演算法思想1 最傻瓜的演算法,先在陣列中固定乙個值,然後依次...

14 在排序陣列中查詢和為給定值的兩個數字

題目 輸入乙個已經按公升序排序過的陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。分析 如果我們不考慮時間複雜度,...