解算法题的五个基本思路

解算法题的四个基本思路:

一、阅读完成条件

二、选择数据结构

三、时间复杂度分析

四、判断边界条件

五、继续探索取巧方法

 

例子解析:

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;

 

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