
算法
FrankJenq
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 877.石子游戏:DP问题的状态寻找
题目描述: 亚历克斯和李用偶数堆石子做游戏。石子排成一行,每堆都有正整数颗石子 piles[i]piles[i]piles[i] 。 游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。 亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。 假设亚历克斯和李都发挥出最佳水平,当亚历克...原创 2020-05-06 19:06:27 · 313 阅读 · 0 评论 -
插值排序+快速排序
用快排算法(QuickSort)将待排序数组划分成长度不大于10的若干子数组之后,改用插入排序(InsertSort)完成剩下的排序工作,这是因为当比较大小(Compare)这个操作本身就很复杂的时候,插入排序在小规模数组上的表现比快排更好,假如排序的是字符串等复杂对象,效果会更明显。 quickSort方法里用到了两个方法,partition方法用来确定快排算法基准数的位置,insertSo...原创 2019-06-12 19:40:10 · 582 阅读 · 0 评论 -
对不定数分解质因数
题目要求:找到形如6541367***的一个十位数,它是两个五位数的质数乘积。 思路:先用筛法找出不大于100000的所有质数,然后从这些质数中查找答案。 public static void main(String[] args) { final int N = 100000; /** 找到小于等于100000的所有质数 */ List<L...原创 2019-06-12 21:25:59 · 436 阅读 · 0 评论 -
(Java/动态规划)有障碍物的最短路径问题
假定要在一片树林里开辟空地,树林用二维数组表示,0代表池塘或岩石等无法越过的障碍,1表示已经砍伐完成的草地,大于1的数表示树木的高度: [ [1,2,3], [0,0,4], [7,6,5] ] 从(0,0)点出发,每次都必须砍伐可抵达的树木中最矮的那棵,需要多少步才能砍完所有树木? 要求: 1.不能越过障碍物和树木,只能越过草地; 2.如果起点有树木,直接砍倒,不计步数。 思路:每到达一个新位置...原创 2019-06-12 22:07:18 · 10041 阅读 · 1 评论 -
Leetcode 103.二叉树的之字形遍历:双端队列与广度优先搜索
要求以之字形遍历一个二叉树的每一层,并将结果储存在一个List当中。 例: 输出结果: [[4],[3,2],[1,8,7],[10]] 思路:采用广度优先搜索,用一个栈遍历节点。为了实现之字形遍历,每当进入下一层,改从另一头进出栈即可。 public List<List<Integer>> zigzagLevelOrder(TreeNode root) { ...原创 2019-06-13 20:20:08 · 842 阅读 · 0 评论