和為s的兩個數字 和為s 的連續正數序列

2021-08-18 12:43:34 字數 1086 閱讀 2451

題目1

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對,輸出所有對。

python題解

def

find_num_with_sum

(data, sum):

hash_set = set()

res =

for idx, num in enumerate(data):

another_num = sum - num

if another_num in hash_set:

else:

hash_set.add(num)

return res

if __name__ == '__main__':

data = [1, 2, 4, 13, 11, 14]

res = find_num_with_sum(data, 15)

print res

data = [2, 7, 11, 15]

res = find_num_with_sum(data, 9)

print res

題目2

python題解

def

find_continuous_seq

(sum):

res =

if sum < 3:

return

small, big = 1, 2

middle = (1 + sum) / 2

cur_sum = small + big

while small < middle:

if cur_sum == sum:

while cur_sum > sum and small < middle:

cur_sum -= small

small += 1

if cur_sum == sum:

big += 1

cur_sum += big

return res

if __name__ == '__main__':

print find_continuous_seq(15)

和為S的兩個數字 和為S的連續正數序列

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。維護首位兩個指標,不斷向中間夾逼。class solution if array left array right sum if array left array righ...

面試題41 和為s的兩個數字,和為s的連續正數序列

題目一 輸入乙個遞增排序的陣列和數字,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,輸出任意一對即可。例如輸入陣列和數字15,由於4 11 15,因此輸出4和11。思路 可以利用2個指標,分別指向陣列的第乙個元素和最後的乙個元素,如果兩元素之和大於我們輸入的和,則將第二個指標向...

和為s的兩個數字 VS 和為s的連續正數序列42

題目一 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,輸出任意一對即可。例如輸入陣列和數字15。由於4 11 15,因此輸出4和11。解題思路 先在陣列中選擇兩個數 第乙個數和最後乙個數 如果它們的和等於輸入的s,那麼就找到了數字。如果小於s...