Java教程
算法分类整理
本文主要是介绍算法分类整理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
排序查找算法
ST01_冒泡排序
ST02_选择排序
ST03_插入排序
ST04_快速排序
ST05_堆排序
查找算法
SC01_二分折半查找
生成消费者
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_写一个死锁程序
单例模式
JZ0_1_单例模式-双重加锁
JZ0_2_单例模式-静态内部类
JZ0_3_单例模式-kotlin by lazy()
链表
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_链表表示的两数相加
树
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_后序数组重建二分搜索树
栈和队列
JZ09_1_用两个栈实现队列
JZ09_2_用两个队列实现栈
JZ30_包含min函数的栈
JZ31_1_栈的压入弹出序列
JZ31_2_是否是回文数
JZ59_1_滑动窗口的最大值
JZ59_2_队列的最大值
搜索算法
JZ04_二维数组中的查找
JZ11_旋转数组的最小数字
JZ38_1_字符串的排列
JZ38_2_正方体三组向对面
JZ38_3_八皇后
JZ44_数字序列中某一位的数字
JZ53_1_数字在排序数组中出现的次数
JZ53_2_0到n减1中缺失的数字
JZ53_3_递增数组查找下标相等的数
动态规划
JZ10_1_斐波那契数列
JZ10_2_青蛙跳台阶
JZ10_3_青蛙跳台阶
JZ10_4_小矩形覆盖大矩形
JZ19_正则表达式匹配
JZ42_连续子数组的最大和
JZ46_把数字翻译成字符串
JZ47_礼物的最大价值
JZ48_最长不含重复字符的子字符串
JZ63_股票最大的利益
回溯
JZ12_矩阵是否包含某字符路径
JZ13_机器人运动范围
排序
JZ03_1_整型数组中重复的元素
JZ03_2_整型数组中重复的元素
JZ40_找出数组中最小的k个数
JZ41_数据流的中位数
JZ51_数组中的逆序对
位运算
JZ15_1_二进制中1的个数
JZ15_2_是不是2的整数次方
JZ15_3_m的二进制改变多少位得到n
JZ16_数值的整数次方
JZ56_1_数组中数字出现的次数
JZ56_2_数组中数字出现的次数
JZ56_2_数组数字出现的次数
JZ64_求1加到n的和
JZ65_不用加减乘除做加法
OT_Ip地址转换
OT_Topk问题
OT_二进制加法
OT_前n个数字二进制中1的个数
OT_大数相加
OT_整数除法
模拟
JZ20_表示数值的字符串
JZ29_顺时针打印二维数组
JZ61_扑克牌的顺子
JZ67_把字符串转换成整数
其它算法
JZ05_1_替换空格
JZ05_2_合并两个排序数组
JZ14_剪绳子
JZ17_打印1到最大的n为数
JZ21_调整数组顺序使奇数位于偶数前面
JZ39_数组中出现次数超过一半的数字
JZ43_1至n个整数1出现的次数
JZ45_把数组排列成最小的数
JZ49_丑数
JZ50_第一个只出现一次的字符
JZ57_1_和为s的数字
JZ57_2_和为s的连续正数序列
JZ58_1_翻转单词顺序
JZ58_2_左旋转字符
JZ60_n个骰子和为s的概率
JZ62_圆圈剩下最后一个数字
JZ66_构建乘积数组
OT_字符串去重
OT_字符串数组去重
OT_字符串的交集
OT_最大正方形
扩展
(1)64匹马,8个赛道,找出跑得最快的4匹马?
10次或者11次
(2)用天平在16个球中找出最重的球需要几次
3次,(1)先分成2组,每组8个,放天平上,重的那个在哪边很容易看出来。(2)再在轻的那8个中取出1个,放到重的这边,凑成9个球,然后把这个9个球分成3组,任意选两组放到天平上:①如果一样重,则重的那个球在另一组没过秤的那3个球里。②如果不一样重,则重的那个球就在重的那一组里。(3)挑出这一组,重复第二步骤可找到那个重一点的小球。
(3)三门问题?
换2/3的概率拿到奖品,不换1/3的概率拿到奖品。
这篇关于算法分类整理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
您可能喜欢
微服务架构中API版本控制的实践
09-28
AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
09-28
Sentinel配置限流资料:新手入门教程
09-27
Sentinel配置限流资料详解
09-27
Sentinel限流资料:新手入门教程
09-27
Sentinel限流资料入门详解
09-26
Springboot框架资料:初学者入门教程
09-26
Springboot框架资料详解:新手入门教程
09-26
Springboot企业级开发资料:新手入门指南
09-26
SpringBoot企业级开发资料新手指南
09-26
Springboot微服务资料入门教程
09-26
SpringBoot微服务资料入门指南
09-26
Springboot项目开发资料:新手入门及初级实战教程
09-26
Springboot项目开发资料:新手入门教程
09-26
SpringCloud Alibaba资料入门详解
09-26
栏目导航
前端开发
HTML5教程
CSS教程
Javascript
jQuery教程
AJAX教程
Node.js教程
XML教程
正则表达式
后端开发
Go教程
C/C++教程
消息队列MQ
Net Core教程
Asp.net教程
Java教程
PHP教程
移动端开发
微信公众号开发
小程序开发
Swift教程
IOS教程
Kotlin教程
Android开发
数据库
Redis教程
MongoDB教程
PostgreSQL教程
Oracle教程
MariaDB教程
SqLite教程
MySql教程
SqlServer教程
服务器运维
Kubernetes
Docker容器
linux shell
Nginx教程
网站安全
PowerShell教程
Linux教程
人工智能
TensorFlow教程
Python教程
机器学习
人工智能学习
区块链
区块链技术
游戏开发
游戏编程
Unity3D教程
网站运营
网站策划
网站优化
建站知识
大数据/云计算
云计算
Hadoop教程
软件工程
软件/开发工具使用
Git教程
资讯