iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0

前情提要

今天想著繼續往下解題,雖然仍然是從Easy Level裡面挑題目,但這次選的主題是有Hash Table的Tag,主要是想挑戰一下自己不太熟的類型。

進入正題

Given a non-empty array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Example 1:
Input: [2,2,1]
Output: 1
Example 2:
Input: [4,1,2,1,2]
Output: 4

這題題目上說輸入是非空的整數陣列,裡面除了其中一個元素只會出現一次之外,其他都會出現兩次。找出只有出現過一次的元素並輸出。
因為他有Hash Table的標籤,讓我想到的解法是按照陣列一個個拿出來,然後把元素裡的數字當成索引,數量作為Value。
不過我自己覺得我的Hash觀念還有些不太熟的,決定先查查Hash的基本觀念回顧一下再來寫程式碼。

我理解的Hash table有點像是先把資料分門別類,透過Hash Function做成一個歸納過的表格,
要查找東西的時候透過已經分類好的表格來搜尋就會很快速,但是最後的表格也不會是第一個數字作為第一個開始

參考資料

參考1: 十一、从头到尾解析Hash表算法


上一篇
#66 Plus One - 繼續解
下一篇
#136 Single Number - 直接研究其他解法
系列文
Leetcode新手挑戰30天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言