LeetCode演算法打卡之環形鍊錶

2021-10-03 17:05:30 字數 744 閱讀 3139

題目要求查詢鍊錶中是否有環,因為每個鍊錶節點都有唯一的識別符號——位址,我們可以使用乙個儲存位址的雜湊表來做,每經過乙個節點,就把這個節點的位址記錄到雜湊表中,同時查詢雜湊表中是否有相同的位址。如果有,就說明指標又指回了之前經過的節點,於是鍊錶有環。如果指標最後到了末尾,變成了空指標,則鍊錶沒有環。

實現如下:

雖然這個辦法只要迴圈一遍鍊錶就可以找到答案,但是得分並不高。試一下快慢指標法。

這次得分還可以,但是和第一次執行時間差不多,那就一定不是時間複雜度的問題了。可能是因為操作乙個儲存指標的雜湊表太慢了 。

LeetCode演算法打卡

475.供暖器 冬季已經來臨。你的任務是設計乙個有固定加熱半徑的供暖器向所有房屋供暖。現在,給出位於一條水平線上的房屋和供暖器的位置,找到可以覆蓋所有房屋的最小加熱半徑。所以,你的輸入將會是房屋和供暖器的位置。你將輸出供暖器的最小加熱半徑。說明 給出的房屋和供暖器的數目是非負數且不會超過 25000...

LeetCode演算法打卡 動態規劃

62.不同路徑 乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?基本思想 基本動態規劃思想 class solution void split st...

LeetCode演算法打卡 區間問題

57.插入區間 給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 基本思想 先找到要插入的區間的位置,拆入之後,區間合併 如果插入式頭,那就從後面判斷合併的區間,找後面的start大於插入區間end的位置...