有兩種辦法,第一種暴力,遍歷兩遍,時間複雜度為n平方。
第二種,用雜湊表,原理是通過目標值減去要查的第某個數,然後查表是否有這個結果。這個方法減少了計算的次數,時間複雜度為n*logn。
簡要寫一下第二種方法:
class solution
haxi[nums[i]]=i; //map輸入value:nums[i]和key:i
}return a;
};};
這裡用到map,map裡包括乙個value和乙個key。
map.count() //返回map中有幾個對應的value。
也可以用map.find() //如果map.find()=map.end則沒有這個值
leetcode演算法練習
1014.最佳觀光組合 給定正整數陣列 a,a i 表示第 i 個觀光景點的評分,並且兩個景點 i 和 j 之間的距離為 j i。一對景點 i j 組成的觀光組合的得分為 a i a j i j 景點的評分之和減去它們兩者之間的距離。返回一對觀光景點能取得的最高分。示例 輸入 8,1,5,2,6 輸...
leetcode演算法練習
1111.有效括號的巢狀深度 有效括號字串 定義 對於每個左括號,都能找到與之對應的右括號,反之亦然。詳情參見題末 有效括號字串 部分。巢狀深度 depth 定義 即有效括號字串巢狀的層數,depth a 表示有效括號字串 a 的巢狀深度。詳情參見題末 巢狀深度 部分。給你乙個 有效括號字串 seq...
leetcode演算法練習 打家劫舍
題目 打家劫舍 你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示...