每天一算 Two Sum II

2021-09-11 11:37:53 字數 816 閱讀 1282

leetcode上第75號問題:

two sum ii

給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。

函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。

說明:

示例:

輸入: numbers = [2, 7, 11, 15], target = 9 輸出: [1,2] 解釋: 2 與 7 之和等於目標數 9 。因此 index1 = 1, index2 = 2 。

思路

初始化左指標left指向陣列起始,初始化右指標right指向陣列結尾。

根據已排序這個特性,

動畫演示

**

// 對撞指標

// 時間複雜度: o(n)

// 空間複雜度: o(1)

class solution ;

return vector(res, res+2);

}else

if(numbers[l] + numbers[r] < target)

l ++;

else // numbers[l] + numbers[r] > target

r --;}}

複製**

歡迎關注

每天一算 Sort Colors

leetcode上第75號問題 sort colors 給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 ...

每天一算 Move Zeros

leetcode上第283號問題 move zeros 給定乙個陣列nums,寫乙個函式,將陣列中所有的0挪到陣列的末尾,維持其他所有非0元素的相對位置。舉例 nums 0,1,0,3,12 函式運 後結果為 1,3,12,0,0 思路 建立乙個臨時陣列nonzeroelements,遍歷nums,...

每天一演算法(生命遊戲)

說明 生命遊戲 game of life 為1970年由英國數學家j.h.conway所提出,某一細胞的鄰居包括上 下 左 右 左上 左下 右上與右下相鄰之細胞,遊戲規則如下 復活 如果某位置原無細胞存活,而該位置的鄰居為三個,則該位置將復活一細胞。解法 生命遊戲的規則可簡化為以下,並使用case比...