兩數之和變體 (阿里面試)

2021-08-21 21:44:51 字數 586 閱讀 9592

給定乙個整數陣列和乙個目標值,找出陣列中和最接近目標值的兩個數。

還是類似尋找兩數之和的思路,用前後兩個指標,不同的是需要新增加乙個變數儲存和與target之間的最小差值dis,以及最小差值對應的兩個數。這個差值先初始化一下,每次先計算一下當前的兩個數與target的距離,如果當前差值小於最小差值,更新最小差值,並且用當前兩個數更新result,如果有當前兩個數的和正好等於target的情況,直接輸出result即可,這一定是最接近的,如果不等,就用尋找相等的思路移動前後兩個指標,使得兩個數之和往更接近target的方向走。如果沒有正好相等的,就輸出最後儲存的最接近的兩個數。

vectortwosumclose(vector& nums, int target)

return result;

}

類似的,還有最接近的三數之和,只需要增加乙個迴圈。這裡只需要找到一組解輸出即可,所以不需要去重。

vectorthreesumclose(vector& nums, int target)

} return result;

}

面試題 兩數之和

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

面試題 兩數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...

04 22 阿里面試

問題描述 有乙個六公升的水桶,乙個五公升的水桶,足夠的水,得到乙個三公升的水?用兩種方案實現。first 倒5次 六公升桶裝滿,倒入五公升桶中,然後五公升桶清空,將六公升桶中剩下一公升水倒入五公升桶,將六公升桶裝滿,倒入五公升桶中,那麼六公升桶中剩下兩公升水,五公升桶清空,將六公升桶中的兩公升水倒入...