排序查找算法
查找算法
生成消费者
- 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的概率拿到奖品。