原创 LeetCode 53.最大子串和——DP

鏈接 : 原題 題意 : 給定一個整數序列,找一個具有最大和的連續子串。 思路 :動態規劃。 最近做的滑動窗口題比較多,我一開始想了半天滑動窗口,但是這題明顯不是,因爲沒有判斷條件。 此題要O(n) 複雜度,所以肯定不能同時枚

原创 LeetCode 21 合併兩個有序鏈表——歸併

鏈接 :原題 題意 : 兩個有序鏈表進行合併。 思路: 這個是經典的數據結構鏈表題,考研的時候在王道里面看到過,是一種經典的歸併思想,也就是迭代。用的是尾插法。 如果兩個鏈表 l1 和 l2都不爲空,那就比較兩個數,較小的插入

原创 LeetCode 686 重複疊加字符串

鏈接 : 原題 題意 : 給定一個字符串a和b,判斷 a重複加自身幾次,b纔是a的子串。 思路: 這裏的子串是連續子串,並不是按順序存在b裏所有字母即可。所以我用的是 string裏的find。 題目說如果永遠不可能,

原创 LeetCode 202 快樂數——Floyd判圈算法

鏈接 : 快樂數 題意 : 思路: (1)只要把數位平方和相加,判斷是否等於1即可。循環判斷則用set即可。 代碼: class Solution { int check(int n){ int an

原创 LeetCode 1095 山脈數組中查找目標值——二分尋找極值

鏈接 : 原題 題意 : 給定一個山脈數組,即凸函數,尋找一個數值等於target的index。 思路 : 因爲凸函數峯值的左右都是一個單調函數,所以只要找到峯值,再對兩邊分別進行二分查找就可。 凹凸函數找峯值,本來我

原创 LeetCode 117 填充每個節點的下一個右側節點指針

鏈接 : 原題 題意:給定一個二叉樹 結構: 使其每一個節點的next指針都指向其右側的節點;如果右側沒有節點,就指向NULL。 如圖: 思路: 因爲是給同一層的節點加上next,所以層序遍歷即可。 使用queu

原创 牛客算法週週練4 C題——階乘 二分+階乘分解質因子

鏈接 : 題目 題意 : 給定一個p, 找一個最小的n,使得n!是p的倍數。 思路 :有兩種思路 1、二分方法,因爲要找到最小的n!,用二分即可。重點便是二分裏的judge函數。 (1)此題要用到分解質因子的方法。 算數基本

原创 牛客算法週週練4 E題裝備合成——三分搜索

鏈接 :裝備合成 題意 : 思路 :控制變量 設 方法一生成的裝備數量爲 m,則方法二生成的裝備數量是 min((x - 2 * m)/4, y - 3* m)。 所以生成的總量函數 f(m) = m + min((x -

原创 LeetCode 76 最小覆蓋子串

鏈接 : 最小覆蓋子串 題意:給定一個字符串s以及t,判斷 s 裏包含 t 所有字母的最小子串。 思路:雙指針的應用——滑動窗口 (官方題解)舉個例子,S = “ABAACBAB”,T = “ABC” 首先兩個指針 left =

原创 北郵機試——special數

題意 設一個數既是平方數又是立方數,那稱它爲special數。在輸出1-n中有多少special數。 思路 一開始沒有轉過彎來,長時間沒寫題,想的是兩個set,一個加入平方數一個加入立方數,然後判斷公共數。 後來想到specia

原创 ACM 組合數求解

前言: 因爲之前做了一道cf上面的題,需要用到組合數,並且數據過大,於是學習了一下在可能會爆精度的情況下組合數的求法。 公式: 知識準備 一、歐幾里得算法 即我們常說的“輾轉相除法”,用來求a和b的最大公約數(g

原创 計蒜客 2019 藍橋杯省賽 B組模擬賽(一)F 找質數

題目鏈接 :https://nanti.jisuanke.com/t/A2238 題意:任給一個數n,找出兩個質數相加可以等於n,並且是字典序最小。 思路 :暴力求素數肯定會超時,於是我就想到了歐拉篩法。(當然最後發現nlogn的埃

原创 二分查找算法的理解

前言 在做LIS的O(nlgn)算法時,用到了二分查找算法。對於其中的一些條件,例如 l<r 和 l <= r 的區別,r = mid和r = mid-1的區別等等不是很瞭解,於是進行了一些學習。 找第一次的出現位置 二分查找因爲有幾

原创 LIS 最長遞增子序列

前言 LIS 即 longest increasing string,最長遞增子序列,可以是不連續的。例如 2 3 5 2 3 4 5 的最長遞增子序列爲{2,3,4,5},長度爲4. 兩種方法可以求出,一種O(n^2)的動態規劃算法

原创 計蒜客 2019 藍橋杯省賽 A 組模擬賽(一)F 掎角之勢

題目鏈接 :https://nanti.jisuanke.com/t/A2226 題意:給定三個點,求三角形的內切圓和外接圓的面積(需要先判斷是否能構成三角形) 思路: 1)判斷三角形 :不要用a+b>c的方法了!既然上了大學就用叉