解算法題的四個基本思路:
一、閱讀完成條件
二、選擇數據結構
三、時間複雜度分析
四、判斷邊界條件
五、繼續探索取巧方法
例子解析:
LeeCode 136題:只出現一次的數字
給定一個非空整數數組,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
解答思路:
一、閱讀完成條件:非空整數數組、每個元素出現兩次、1個元素出現1次
二、選擇數據結構:雙for循環、排序+二分法、HashMap
三、時間複雜度分析:雙for循環 、排序+二分法 、HashMap
四、判斷邊界條件:排序+二分法需要考慮數組的邊界問題
五、繼續探索取巧方法:異或解法:
int result = nums[0];
if (nums.length > 1) {
for (int i = 1; i < nums.length; i++) {
result = result ^ nums[i];
}
}
return result;