LeetCode 9 三數之和

2021-09-26 19:36:51 字數 1059 閱讀 9204

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。

注意:答案中不可以包含重複的三元組。

例如, 給定陣列 nums = [-1, 0, 1, 2, -1, -4],

滿足要求的三元組集合為:

[[-1, 0, 1],

[-1, -1, 2]

]方法一:先對陣列進行排序,然後用三個迴圈語句找到和為0的三個數,執行效率較低並且輸出超時。

class program);}

}}return result;

}static void main(string args)

;console.writeline(threesum(nums));}}

方法二:先對陣列排序,然後固定第乙個數的索引,在乙個迴圈語句裡面利用雙指標找和為0的數,當和小於0時,雙指標交替向中間移動。

class program

);if(nums[l] == nums[l + 1]) l++;

if(nums[r - 1] == nums[r]) r--;

l++; r--;

}else if (nums[i] + nums[l] + nums[r] > 0)

r--;}}

return result;

}static void main(string args)

;console.writeline(threesum(nums));}}

測試用例:

執行結果:

LeetCode 9 題解 回文數

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10輸出 false 解釋 從右向左讀,...

Go實現回文數(leetcode 9)

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左...

LeetCode 9 回文數(簡單)

點此去做 題幹 判斷乙個整數是否是回文數。回文數是指正序和倒序都是一樣的整數。你能不將數字轉化為字串做嗎?輸入 121 121 10輸出 true false false執行用時 28ms,11.5mb 思想 最開始想要借用整數翻轉的 先將整數翻轉後再做相等比較,結果發現用例中有會造成溢位的大數,不...