Java中陣列難點,插入新資料/刪除資料
阿新 • • 發佈:2021-01-15
題目:
給定一個包括n 個整數的陣列nums和 一個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
示例:
輸入:nums = [-1,2,1,-4], target = 1
輸出:2
解釋:與 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
注意:
3 <= nums.length <= 10^3
-10^3 <= nums[i] <= 10^3
-10^4 <= target <= 10^4
方案一:暴力解法(竟然沒有超時。。。)
class Solution { public: int threeSumClosest(vector<int>& nums, int target) { if (nums.size() < 3) { return 0; } int sum = 0; int flag = 0; for (int i = 0; i < nums.size() - 2; i++) { for(int j = i+1; j < nums.size() - 1; j++) { for (int k = j+1; k < nums.size(); k++) { int temp = nums[i] + nums[j] + nums[k]; if (flag == 0 || abs(temp - target) < abs(sum - target)) { sum = temp; flag = 1; } } } } return sum; } };
時間複雜度
空間複雜度
方案二: