解算法題的五個基本思路

解算法題的四個基本思路:

一、閱讀完成條件

二、選擇數據結構

三、時間複雜度分析

四、判斷邊界條件

五、繼續探索取巧方法

 

例子解析:

LeeCode 136題:只出現一次的數字

給定一個非空整數數組,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。

 

解答思路:

一、閱讀完成條件:非空整數數組、每個元素出現兩次、1個元素出現1次

二、選擇數據結構:雙for循環、排序+二分法、HashMap

三、時間複雜度分析:雙for循環 O(n 2 )、排序+二分法 O(nlogn)、HashMap O(n)

四、判斷邊界條件:排序+二分法需要考慮數組的邊界問題

五、繼續探索取巧方法:異或解法:

int result = nums[0];
if (nums.length > 1) {
   for (int i = 1; i < nums.length; i++) {
      result = result ^ nums[i];
   }
 }
 return result;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章