leetcode關於陣列的問題

2022-03-18 06:46:07 字數 705 閱讀 8948

解題思路:

這個一開始我是沒想到思路的(除了遍歷),因為有正負號的問題,後來看了一下別人的思路然後自己寫的,思路是這樣的:

三個數乘積最大只能有兩種情況,

一種是三個最大正數直接乘起來最大,

另一種就是兩個最小的負數乘起來再乘以乙個最大的正數。

第一步:

跟前面的那個414.第三大的數乙個思路,遍歷找到最大的三個正數和最小的兩個數。

第二步:

比較最大三個數的乘積和兩個最小數乘以最大數的乘積誰大就返回誰。

解釋: 注意,要求返回第三大的數,是指第三大且唯一出現的數。

存在兩個值為2的數,它們都排第二。

返回第三大且又是唯一出現的數,這裡涉及到了排序和去重,所以想到用set來做,因為set是自動去重並公升序的容器,但有一點,訪問set集合裡的元素只能通過迭代器的形式進行訪問,而不能通過下標。

class

solution

for(int i = 1; i < n; i++);

res[i] = res[i-1] * nums[i-1

]; }

int right = 1

;

for(int i = n-2; i >= 0; i--)

return

res;

}};

leetcode 關於重複問題和陣列問題

目錄陣列 陣列重複元素之類問題的整理 lt26 刪除排序陣列重複項 主要是原地刪除,o 1 空間,很是巧妙 func removeduplicates nums int int tmp 0 不同,tmp 1,放在相應位置 for i 1 ilt80 刪除排序陣列ii 最多重複兩次,空間o 1 pos...

LeetCode 陣列 跳躍問題

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 輸出 fal...

LeetCode 陣列排序問題

給定乙個非負整數陣列 a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當 a i 為奇數時,i 也是奇數 當 a i 為偶數時,i 也是偶數。你可以返回任何滿足上述條件的陣列作為答案 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5 也會...