原创 pat basic 1075 鏈表元素分類

給定一個單鏈表,請編寫程序將鏈表元素進行分類排列,使得所有負值元素都排在非負值元素的前面,而 [0, K] 區間內的元素都排在大於 K 的元素前面。但每一類內部元素的順序是不能改變的。例如:給定鏈表爲 18→7→-4→0→5→-6

原创 pat basic 1089 狼人殺簡單版

以下文字摘自《靈機一動·好玩的數學》:“狼人殺”遊戲分爲狼人、好人兩大陣營。在一局“狼人殺”遊戲中,1 號玩家說:“2 號是狼人”,2 號玩家說:“3 號是好人”,3 號玩家說:“4 號是狼人”,4 號玩家說:“5 號是好人”,5

原创 leetcode easy 貪心 兩地調度

公司計劃面試 2N 人。第 i 人飛往 A 市的費用爲 costs[i][0],飛往 B 市的費用爲 costs[i][1]。 返回將每個人都飛到某座城市的最低費用,要求每個城市都有 N 人抵達。 示例: 輸入:[[10,20],

原创 中級算法之排序和搜索:前 K 個高頻元素

給定一個非空的整數數組,返回其中出現頻率前 k 高的元素。 示例 1: 輸入: nums = [1,1,1,2,2,3], k = 2 輸出: [1,2] 示例 2: 輸入: nums = [1], k = 1 輸出: [1] 說

原创 中級算法之回溯法:電話號碼的字母組合

給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。 給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:"23" 輸出:["ad", "ae", "af", "bd", "be",

原创 leetcode basic 回溯 二進制手錶

二進制手錶頂部有 4 個 LED 代表小時(0-11),底部的 6 個 LED 代表分鐘(0-59)。 每個 LED 代表一個 0 或 1,最低位在右側。 例如,上面的二進制手錶讀取 “3:25”。 給定一個非負整數 n 代表當

原创 PAT基礎:有幾個PAT(1040)

字符串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位§,第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位§,第 4 位(A),第 6 位(T)。 現給定字符串,問一共可以形成多少個 PA

原创 中等dp:三角形最小路徑和

給定一個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如,給定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自頂向下的最小路徑和爲 11

原创 中等dp:不同的二叉搜索樹

給定一個整數 n,求以 1 … n 爲節點組成的二叉搜索樹有多少種? 示例: 輸入: 3 輸出: 5 解釋: 給定 n = 3, 一共有 5 種不同結構的二叉搜索樹: 1 3 3 2

原创 PAT基礎:1017 A除以B

本題要求計算 A/B,其中 A 是不超過 1000 位的正整數,B 是 1 位正整數。你需要輸出商數 Q 和餘數 R,使得 A=B×Q+R 成立。 輸入格式: 輸入在一行中依次給出 A 和 B,中間以 1 空格分隔。 輸出格式:

原创 貪心策略之easy:檸檬水找零

在檸檬水攤上,每一杯檸檬水的售價爲 5 美元。 顧客排隊購買你的產品,(按賬單 bills 支付的順序)一次購買一杯。 每位顧客只買一杯檸檬水,然後向你付 5 美元、10 美元或 20 美元。你必須給每個顧客正確找零,也就是說淨交

原创 貪心策略easy之:玩籌碼

數軸上放置了一些籌碼,每個籌碼的位置存在數組 chips 當中。 你可以對 任何籌碼 執行下面兩種操作之一(不限操作次數,0 次也可以): 將第 i 個籌碼向左或者右移動 2 個單位,代價爲 0。 將第 i 個籌碼向左或者右移動

原创 貪心策略easy之:兩地調度

公司計劃面試 2N 人。第 i 人飛往 A 市的費用爲 costs[i][0],飛往 B 市的費用爲 costs[i][1]。 返回將每個人都飛到某座城市的最低費用,要求每個城市都有 N 人抵達。 示例: 輸入:[[10,20],

原创 中級算法之數組和字符串:最長迴文子串

最長迴文子串 給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 示例 1: 輸入: "babad" 輸出: "bab" 注意: "aba" 也是一個有效答案。 示例 2: 輸入: "cbb