排序查找算法
查找算法
生成消費者
- TH_01_1_基于synchronized與wait/notify的生產消費者模式
- TH_01_2_基于ReentractLock和Condition的生產消費者模式
- TH_01_3_基于Semaphore(信號量)的生產消費者模式
- TH_02_AB兩個線程交替打印0-100的數字
- TH_03_1多線程指定順序執行join
- TH_03_2多線程指定順序執行synchronized
- TH_03_3_多線程指定順序執行ReentrantLock.
- TH_03_4_多線程指定順序執行Semaphore
- TH_04_寫一個死鎖程序
A1_單例模式
A2_數
- JZ10_1_斐波那契數列
- JZ10_2_青蛙跳臺階
- JZ10_3_青蛙跳臺階
- JZ10_4_小矩形覆蓋大矩形
- JZ13_機器人運動范圍
- JZ14_剪繩子
- JZ15_1_二進制中1的個數
- JZ15_2_是不是2的整數次方
- JZ15_3_m的二進制改變多少位得到n
- JZ16_數值的整數次方
- JZ43_1至n個整數1出現的次數
- JZ44_數字序列中某一位的數字
- JZ49_丑數
- JZ60_n個骰子和為s的概率
- JZ62_圓圈剩下最后一個數字
- JZ64_求1加到n的和
- JZ65_不用加減乘除做加法
- OT_TopK問題
- OT_二進制加法
- OT_前n個數字二進制中1的個數
- OT_大數相加
- OT_整數除法
A3_數組
- JZ03_1_整型數組中重復的元素
- JZ03_2_整型數組中重復的元素
- JZ04_二維數組找某數
- JZ05_1_替換空格
- JZ05_2_合并兩個排序數組
- JZ11_旋轉數組的最小數字
- JZ12_矩陣是否包含某字符路徑
- JZ21_調整數組順序使奇數位于偶數前面
- JZ29_順時針打印二維數組
- JZ39_數組中出現次數超過一半的數字
- JZ40_找出數組中最小的k個數
- JZ41_數據流的中位數
- JZ42_連續子數組的最大和
- JZ45_把數組排列成最小的數
- JZ47_禮物的最大價值
- JZ51_數組中的逆序對
- JZ53_1_在排序數組中查找數字
- JZ53_2_0到n減1中缺失的數字
- JZ53_3_遞增數組查找下標相等的數
- JZ56_1_數組數字出現的次數
- JZ56_2_數組數字出現的次數
- JZ57_1_和為s的數字
- JZ57_2_和為s的連續正數序列
- JZ61_撲克牌的順子
- JZ63_股票最大的利益
- JZ66_構建乘積數組
- OT_字符串數組去重
- OT_最大正方形
A4_字符串
- JZ17_打印1到最大的n為數
- JZ19_正則表達式匹配
- JZ20_表示數值的字符串
- JZ38_1_字符串的排列
- JZ38_2_正方體三組向對面
- JZ38_3_八皇后
- JZ46_把數字翻譯成字符串
- JZ48_最長不含重復字符的子字符串
- JZ50_第一個只出現一次的字符
- JZ58_1_翻轉單詞順序
- JZ58_2_左旋轉字符
- JZ67_把字符串轉換成整數
- OT_字符串去重
- OT_字符串的交集
A5_棧和隊列
- JZ09_1_用兩個棧實現隊列
- JZ09_2_用兩個隊列實現棧
- JZ30_包含min函數的棧
- JZ31_1_棧的壓入彈出序列
- JZ31_2_是否是回文數
- JZ59_1_滑動窗口的最大值
- JZ59_2_隊列的最大值
A6_鏈表
- JZ06_從尾到頭打印鏈表
- JZ18_1_刪除鏈表節點
- JZ18_2_刪除鏈表節點
- JZ18_3_刪除鏈表重復節點
- JZ18_4_刪除鏈表重復節點
- JZ22_1_鏈表倒數第K個節點
- JZ22_2_鏈表的中間節點
- JZ23_鏈表中環的入口節點
- JZ24_1_反轉鏈表
- JZ24_2_反轉鏈表m至n節點
- JZ24_3_旋轉鏈表
- JZ25_合并兩排序鏈表
- JZ35_復雜鏈表的復制
- JZ52_兩鏈表第一個公共節點
- OT_k個一組翻轉鏈表
- OT_合并K個升序鏈表
- OT_排序鏈表
- OT_鏈表表示的兩數相加
A7_二叉樹
- JZ07_1_二叉樹前中后層序遍歷
- JZ07_2_重建二叉樹
- JZ08_二叉樹的下一個節點
- JZ26_樹的子結構
- JZ27_二叉樹的鏡像
- JZ28_對稱的二叉樹
- JZ32_1_不分行從上到下打印二叉樹
- JZ32_2_分行從上到下打印二叉樹
- JZ32_3_之字形打印二叉樹
- JZ32_4_二叉樹第k層的第一個或最后一個節點
- JZ33_數組是否是某二叉搜索樹的后續遍歷序列
- JZ34_二叉樹和為某一值的路徑
- JZ36_二叉搜索樹轉換為雙向鏈表
- JZ37_1_序列化和反序列化二叉樹
- JZ37_2_序列化和反序列化二叉樹
- JZ54_二叉搜索樹的第k大節點
- JZ55_1_二叉樹的最大深度
- JZ55_2_是不是平衡二叉樹
- JZ68_1_二叉搜索樹的最近公共祖先
- JZ68_2_二叉樹的最近公共祖先
- JZ68_3_帶父親指針的二叉樹的最近公共祖先
- JZ68_4_多叉樹的最近公共祖先
- OT_二叉樹的寬度
- OT_二叉樹的最大寬度
- OT_前序數組重建二分搜索樹
- OT_后序數組重建二分搜索樹
擴展
(1)64匹馬,8個賽道,找出跑得最快的4匹馬?
(2)用天平在16個球中找出最重的球需要幾次
- 3次,(1)先分成2組,每組8個,放天平上,重的那個在哪邊很容易看出來。(2)再在輕的那8個中取出1個,放到重的這邊,湊成9個球,然后把這個9個球分成3組,任意選兩組放到天平上:①如果一樣重,則重的那個球在另一組沒過秤的那3個球里。②如果不一樣重,則重的那個球就在重的那一組里。(3)挑出這一組,重復第二步驟可找到那個重一點的小球。
(3)三門問題?
- 換2/3的概率拿到獎品,不換1/3的概率拿到獎品。