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