劍指offer(四十二) 和為S的兩個數

2021-10-05 18:51:56 字數 535 閱讀 7650

題目描述

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。

題解

這道題一開始被誤導了,想通了就比較簡單了。這裡面給出了兩個限制條件來查詢目標元素:(1)和為s;(2)乘積最小。仔細想想,在和相同的情況下,兩數差值越大,積不就越大?問題就迎刃而解了,陣列是有序的,那麼首尾兩個元素一定是差值最大的,從這兩個元素開始進行遍歷,找到第一對符合條件的元素就是目標元素了。

這裡畫個圖給大家看看吧:

public arraylist

findnumberswithsum

(int

array,

int sum)

while

(post > pre)

else

if(tempsum > sum)

else

}return anslist;

}

劍指offer系列之四十二 約瑟夫環問題

題目描述 每年六一兒童節,nowcoder都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為nowcoder的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m的那個小朋友要出列唱首歌,...

劍指offer 四十二 之左旋轉字串

題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!public ...

劍指offer 和為s的兩個數

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。示例 1 輸入 nums 2,7,11,15 target 9 輸出 2,7 或者 7,2 示例 2 輸入 nums 10,26,30,31,47,60 target 40 輸...