原创 LeetCode520:檢測大寫字母(Python實現)

題目描述: 給定一個單詞,你需要判斷單詞的大寫使用是否正確。 我們定義,在以下情況時,單詞的大寫用法是正確的: 全部字母都是大寫,比如"USA"。 單詞中所有字母都不是大寫,比如"leetcode"。 如果單詞不只含有一個字母,只有首字母

原创 概率問題:月神喫月餅

題目描述 月神特別喜歡喫月餅,中秋節時快手發了10個月餅,已知⽉神一天⾄少喫⼀個月餅;請問,月神在3天內將10個月餅全部喫完的概率爲? 思路 排列組合問題,採用插板法,n天喫完就在這10個月餅中插n-1個板,插板表示天與天的間隔。

原创 LeetCode刷題筆記78:子集(Python實現)

題目描述: 給定一組不含重複元素的整數數組 nums,返回該數組所有可能的子集(冪集)。 說明:解集不能包含重複的子集。 示例: 輸入: nums = [1,2,3] 輸出: [ [3],   [1],   [2],   [1

原创 LeetCode55:跳躍遊戲(Python實現)

題目描述 給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸出: true 解釋: 從位置 0

原创 LeetCode819:最常見的單詞

題目描述 給定一個段落 (paragraph) 和一個禁用單詞列表 (banned)。返回出現次數最多,同時不在禁用列表中的單詞。題目保證至少有一個詞不在禁用列表中,而且答案唯一。 禁用列表中的單詞用小寫字母表示,不含標點符號。段

原创 LeetCode1025:除數博弈

題目描述 愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。 最初,黑板上有一個數字 N 。在每個玩家的回合,玩家需要執行以下操作: 選出任一 x,滿足 0 < x < N 且 N % x == 0 。 用 N - x 替換黑

原创 CNN卷積核輸出特徵圖大小的計算(長,寬,維度)和權值共享

概要 CNN在進行卷積操作的時候,可以認爲是輸入圖像(Input)與卷積核(Kernel)的對應加權求和。其中,卷積的時候,又可分爲輸出圖像(Output)比輸入圖像縮小的卷積(VALID)即常規情況,與卷積後長寬不變的情況(SA

原创 LeetCode131:分割回文串(Python實現)

題目描述 給定一個字符串 s,將 s 分割成一些子串,使每個子串都是迴文串。 返回 s 所有可能的分割方案。 實例: 輸入: “aab” 輸出: [ [“aa”,“b”], [“a”,“a”,“b”] ] 思路 動態規劃+DFS

原创 LeetCode844.比較含退格的字符串

題目描述 給定 S 和 T 兩個字符串,當它們分別被輸入到空白的文本編輯器後,判斷二者是否相等,並返回結果。 # 代表退格字符。 注意:如果對空文本輸入退格字符,文本繼續爲空。 示例 1: 輸入:S = “ab#c”, T = “

原创 LeetCode496.下一個更大元素

題目描述 給定兩個 沒有重複元素 的數組 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下一個比其大的值。 nums1 中數字 x 的下一個更大元素是指 x

原创 Java實現棧操作

棧 棧(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱爲棧頂,相對地,把另一端稱爲棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成爲新的棧頂

原创 Java鏈表基礎

前記 最近又開始重新看數據結構和算法,算是還賬吧。看到鏈表這覺得問題很多,網上的參考有些博主說法也不盡相同,於是刷了幾道題找找思路和感覺,用Java總結了一下,畢竟網上大多都是C的(指針這問題感覺好多人也沒完全搞懂,包括我)。 鏈

原创 騰訊面試題:利用快慢指針找出單鏈表中間值(Java)

一般思路: 這道題如果按照一般的思路是:先遍歷一次鏈表,記錄住一共有多少個節點,然後,再次遍歷找尋中點。 時間複雜度: O(N) + O(N/2) = O(3/2 N) 快慢指針 利用快慢指針,思路如下:我們把一個鏈表看成一個跑道

原创 LeetCode刷題筆記451:根據字符出現頻率排序

題目描述 給定一個字符串,請將字符串裏的字符按照出現的頻率降序排列。 示例 1: 輸入: "tree" 輸出: "eert" 解釋: 'e'出現兩次,'r'和't'都只出現一次。 因此'e'必須出現在'r'和't'之前。此外,"e

原创 LeetCode刷題筆記1025:除數博弈

題目描述 愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。 最初,黑板上有一個數字 N 。在每個玩家的回合,玩家需要執行以下操作: 選出任一 x,滿足 0 < x < N 且 N % x == 0 。 用 N - x 替換黑