算法-数字字符转化为字母字符种数
package com.jiucaiyuan.net.question; /** * 【问题】规定1和A对应,2和B对应,3和C对应... * 那么一个数字字符串,比如"111",可以转化为"AAA","KA","AK" * 给定一个只有数字字符组成的字符串str,返回有多少种转化结果 * * @Author jiucaiyuan 2022/4/22 23:02 * @mail services@jiucaiyuan.net */ public class ConvertNum2Letters { public static int number...算法-不用额外空间逆序栈
package com.jiucaiyuan.net.question; import java.util.Stack; /** * 【问题】不使用额外空间逆序一个栈:给你一个栈,请你逆序这个栈, * 不能申请额外的数据结构,只能使用递归函数,如何实现? * 【思路】通过用递归,利用栈帧局部变量保存,未主动额外申请空间 * * @Author jiucaiyuan 2022/4/22 22:24 * @mail services@jiucaiyuan.net */ public class ReverseStackNoExtraSpace { ...算法-字符串的全排列
package com.jiucaiyuan.net.question; import java.util.ArrayList; import java.util.Comparator; import java.util.List; /** * 【问题】打印一个字符串的全排列列(如果再加一个附加条件:要求不出现重复排列) * 【思路】第一个位置可以选择其中任意一个字符,第二个位置可以选择剩下的n-1个任何一个字符,第三个位置可以选择n-2个任何一个字符,依次类推 * * @Author jiucaiyuan 2022/4/21 22:58 * @mail ...算法-字符串全部子序列
package com.jiucaiyuan.net.question; import java.util.ArrayList; import java.util.List; /** * 【问题】打印一个字符串的全部子序列,包含空字符串 * 【思路】从第一个字符开始,逐个字符进行处理,每个字符都可以选择要还是不要,分两条路递归 * * @Author jiucaiyuan 2022/4/20 23:57 * @mail services@jiucaiyuan.net */ public class PrintAllSubSequence { ...算法-N皇后问题(含加速版本)
package com.jiucaiyuan.net.question; /** * 【问题】N皇后问题,指的是n*n的棋盘,可以放n个皇后,要求任何两个皇后不同行、不同列,也不在同一条斜线上 * 给出一个整数n,返回n皇后的摆法有多少种 * 给n=1,返回1 * n=2或者3,2皇后和3皇后,无论怎么摆放都不行,返回0 * n=8,返回92 * 【思路】按照行往下摆放,然后一列一列尝试(加速版本会使用按照位操作来加速器处理,但是整体上也是所有都尝试一遍) * 时间复杂度O(N^N) * * @Author jiucaiyuan 2022/4/19 ...算法-贪心-做项目获得最大收益
package com.jiucaiyuan.net.question; import java.util.Comparator; import java.util.PriorityQueue; /** * 【问题】做一个项目,有成本,也有利润,一堆项目,如何选择做,实现收益最大? * 【思路】把所有项目,按照成本放入小根堆,从小根堆中拿出可以做的项目,然后按照利润放入大跟堆,开始先做大根堆的对顶项目 * * @Author jiucaiyuan 2022/4/18 23:10 * @mail services@jiucaiyuan.net */ pu...算法-贪心-会议安排问题
package com.jiucaiyuan.net.question; import java.util.Arrays; import java.util.Comparator; /** * <pre> * 贪心算法 * 在某一个标准下,优先考虑最满足标准的样本,最后考虑最不满足标准的样本, * 最终得到一个答案的算法,叫做贪心算法 * 也就是说,不从整体最优上加以考虑,所做出的是在某种意义上的局部最优解 * * 实例题:会议问题 * 问题内容:一些项目要占用会议室宣讲,会议室不能同时容纳两个项目同时宣讲。 * 给你每个项...算法-贪心-成本最小切金条
package com.jiucaiyuan.net.question; import java.util.PriorityQueue; /** * 【问题】一个金条切成两半,需要花费和长度一样的铜板。比如:长度为20的金条,不管切成多大的两块,都需要花费20个铜板 * 一群人想整分整块金条,怎么分最省钱? * 例如:给定一个数组[10,20,30],代表一共三个人,整块金条长度为10+20+30=60. * 金条要分成10、20、30三个部分,如果先把长度为60的金条分成10和50,花费60,再把 * 长度为50的分成20和30,花费50,一共花费110个铜板...算法-贪心-拼接字符得到最小字典序
package com.jiucaiyuan.net.question; import java.util.Arrays; import java.util.Comparator; /** * 【问题】一个数组中很多字符串,怎么拼接一起得到字典序最小? * 【思路】字符串a和b,如果a+b字典序小于b+a,则拼接方法是a+b得到小的字典序 * * @Author jiucaiyuan 2022/4/18 22:49 * @mail services@jiucaiyuan.net */ public class LowestLexicography ...算法-前缀树(单词查找树)
package code; /** * 前缀树(单词查找树) * 是一种树形结构; 用于保存大量的字符串。 * 优点:利用字符串的公共前缀来节约存储空间。 * 字母放在路径上,节点上存储到该节点的字符数pass以及以该节点为终点的字符数end * * @Author jiucaiyuan 2022/4/15 23:30 * @mail services@jiucaiyuan.net */ public class TrieTree { public static class TrieNode { /** ...图-有向无环图拓扑排序算法
package com.jiucaiyuan.net.algrithm.graph; import java.util.*; /** * 有向无环图拓扑排序(DAG:Direct Acyclic Graph) * * 有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说 * * @Author jiucaiyuan 2022/4/14 22:20 * @mail services@jiucaiyuan.net */ public class TopologySort { /** * directed graph an...图-最短路径-Dijkstra算法
package com.jiucaiyuan.net.algrithm.graph; import java.util.HashMap; import java.util.HashSet; import java.util.Set; /** * Dijkstra算法 * 适用于:可以有权值为负数的边,但是不能有累加为负数的环的无向图,指定一个出发点,计算到所有节点的最短路径算法 * * @Author jiucaiyuan 2022/4/14 21:36 * @mail services@jiucaiyuan.net */ public clas...图-最小生成树-Prim算法
package com.jiucaiyuan.net.algrithm.graph; import java.util.Comparator; import java.util.HashSet; import java.util.PriorityQueue; import java.util.Set; /** * 图的Prim排序算法(p算法) * 适用于:无向图; * 作用:生成最小生成树 * 最小生成树:保障节点连通性的同时权值总合最小 * 思路:解锁最小的边,相邻的节点是解锁的节点,再找相邻的边,从解锁的边中找最小权重的边(这个边两个节点必有不在解锁...图-最小生成树-Kruskal算法
package com.jiucaiyuan.net.algrithm.graph; import com.jiucaiyuan.net.algrithm.set.UnionFindSet; import java.util.*; /** * 图的Kruskal排序算法(k算法) * 适用于:无向图; * 作用:生成最小生成树 * 最小生成树:保障节点连通性的同时权值总合最小 * 思路:边权值排序,从小到大逐个增加,是否行程环,如果形成环,不要,如果未生成,继续,直到所有的边处理完毕(用到并查集) * 是否形成环判断:这个边链接的两个节点是否在同一个集...算法-图-深度优先遍历
package com.jiucaiyuan.net.algrithm.graph; import java.util.HashSet; import java.util.Stack; /** * 图的深度优先遍历 * * @Author jiucaiyuan 2022/4/14 18:10 * @mail services@jiucaiyuan.net */ public class GraphMaxDepthAccess { /** * 深度优先遍历 * * @param node 从node开始遍历 ...算法-图-宽度优先遍历
package com.jiucaiyuan.net.algrithm.graph; import java.util.HashSet; import java.util.LinkedList; import java.util.Queue; /** * 图的广度优先遍历(宽度优先遍历) * * @Author jiucaiyuan 2022/4/14 17:15 * @mail services@jiucaiyuan.net */ public class GraphMaxWidthAccess { /** * 宽度优先遍历(...算法-leecode46-全排列
package com.jiucaiyuan.net.question; import java.util.ArrayList; import java.util.List; /** * * 46.全排列 * * 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 * * @Author jiucaiyuan 2022/4/14 00:00 * @mail services@jiucaiyuan.net */ class FullPermutation { public static L...算法-leecode164-最大间距
package com.jiucaiyuan.net.question; import java.util.Arrays; /** * 给定一个无序的数组 nums,返回 数组在排序之后,相邻元素之间最大的差值 。如果数组元素个数小于 2,则返回 0 。 * <p> * 您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。 * <p> * 示例1: * <p> * 输入: nums = [3,6,9,1] * 输出: 3 * 解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和...JVM垃圾回收
怎么定义垃圾 引用计数法 循环引用问题(循环依赖问题) 可达性分析法 GC Roots 虚拟机栈(栈帧中的本地变量表)中应用的对象 方法区中类静态引用的对象 方法区中常量引用的对象 本地方发展中JNI引用的对象 怎么回收垃圾 标记-清除算法 步骤 ...算法-二叉树-折纸问题
package com.jiucaiyuan.net.algrithm.tree; /** * <pre> * 【问题】折纸问题 * 【题目】请把一张纸条竖着放在桌子上,然后把纸条从下面向上方对这一次,压出折痕后展开, * 此时折痕是凹下去的,即折痕凸起的方向指向纸条的背面; * 如果从纸条的下方向上连续的折2次,压出折痕后展开,此时有三条折痕, * 从上到下依次是下折痕、下折痕和上折痕;给定一个输入参数n, * 表示纸条都从下边向上连续对着n次,请从上到下打印所有折痕方向。 * 例如:n=1时,打印:down;n=2时,打印:down dow...日历
个人资料
diaba 寻求合作请留言或联系mail: services@jiucaiyuan.net
链接
最新文章
存档
- 2024年10月(1)
- 2024年8月(2)
- 2024年6月(4)
- 2024年5月(1)
- 2023年7月(1)
- 2022年10月(1)
- 2022年8月(1)
- 2022年6月(11)
- 2022年5月(6)
- 2022年4月(33)
- 2022年3月(26)
- 2021年3月(1)
- 2020年9月(2)
- 2018年8月(1)
- 2018年3月(1)
- 2017年3月(3)
- 2017年2月(6)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(1)
- 2016年9月(3)
- 2016年8月(4)
- 2016年7月(3)
- 2016年6月(4)
- 2016年5月(7)
- 2016年4月(9)
- 2016年3月(4)
- 2016年2月(5)
- 2016年1月(17)
- 2015年12月(15)
- 2015年11月(12)
- 2015年10月(6)
- 2015年9月(11)
- 2015年8月(8)
分类
热门文章
- SpringMVC:Null ModelAndView returned to DispatcherServlet with name 'applicationContext': assuming HandlerAdapter completed request handling
- Mac-删除卸载GlobalProtect
- java.lang.SecurityException: JCE cannot authenticate the provider BC
- MyBatis-Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}
- Idea之支持lombok编译
标签
最新评论
- logisqykyk
Javassist分析、编辑和创建jav... - xxedgtb
Redis—常见参数配置 - 韭菜园 ... - wdgpjxydo
SpringMVC:Null Model... - rllzzwocp
Mysql存储引擎MyISAM和Inno... - dpkgmbfjh
SpringMVC:Null Model... - tzklbzpj
SpringMVC:Null Model... - bqwrhszmo
MyBatis-Improper inl... - 乐谱吧
good非常好 - diaba
@diaba:应该说是“时间的度量依据”... - diaba
如果速度增加接近光速、等于光速、甚至大于...
最新微语
- 从今天起,做一个幸福的人。喂马,砍柴,(思想)周游世界
2022-03-21 23:31
- 2022.03.02 23:37:59
2022-03-02 23:38
- 几近崩溃后,找到解决方法,总是那么豁然开朗!所以遇到问题要坚持!
2018-07-18 10:49
- 2018年关键字“走心”
2018-03-19 16:07
- 保护好自己最大的方法是让自己更强大,不要柔弱的像一只绵羊一样,得谁巴拉,就谁巴拉!
2017-12-20 10:24