随笔分类 -  Java

上一页 1 ··· 5 6 7 8 9 10 下一页
使用java编写的程序或者和java有关的题目
摘要:1423. 可获得的最大点数 https://leetcode-cn.com/problems/maximum-points-you-can-obtain-from-cards/ package com.walegarrett; /** * @Author WaleGarrett * @Date 2 阅读全文
posted @ 2020-12-03 20:42 Garrett_Wale 阅读(81) 评论(0) 推荐(0)
摘要:剑指 Offer 59 - II. 队列的最大值 题目链接 相似题目 剑指 Offer 30. 包含min函数的栈 面试题59 - II. 队列的最大值 155. 最小栈 java实现 package com.walegarrett; /** * @Author WaleGarrett * @Dat 阅读全文
posted @ 2020-12-03 20:06 Garrett_Wale 阅读(79) 评论(0) 推荐(0)
摘要:Invert a Binary Tree pat-1102 import java.util.Arrays; import java.util.Queue; import java.util.Scanner; import java.util.concurrent.LinkedBlockingQue 阅读全文
posted @ 2020-09-05 20:35 Garrett_Wale 阅读(101) 评论(0) 推荐(0)
摘要:Pre- and Post-order Traversals PAT-1119 这题难度较大,主要需要考虑如何实现根据前序遍历和后序遍历来确定一颗二叉树 一篇好的文章: 题解 import java.util.Scanner; /** * @Author WaleGarrett * @Date 20 阅读全文
posted @ 2020-09-05 19:47 Garrett_Wale 阅读(149) 评论(0) 推荐(0)
摘要:LCA in a Binary Tree PAT-1151 本题的困难在于如何在中序遍历和前序遍历已知的情况下找出两个结点的最近公共祖先。 可以利用据中序遍历和前序遍历构建树的思路,判断两个结点在根节点的左右子树,依次递归找到最近祖先 import java.util.HashMap; import 阅读全文
posted @ 2020-09-05 18:03 Garrett_Wale 阅读(155) 评论(0) 推荐(0)
摘要:Build A Binary Search Tree PAT-1099 本题有意思的一个点就是:题目已经给出了一颗排序二叉树的结构,需要根据这个结构和中序遍历序列重构一棵二叉排序树。 解法:可以根据中序遍历的思路,首先将给定的序列串进行排序即是中序遍历的结果。接着,根据给定的树结构进行中序遍历,这期 阅读全文
posted @ 2020-09-05 16:55 Garrett_Wale 阅读(174) 评论(0) 推荐(0)
摘要:Tree Traversals Again Tree Traversals Again 这里的第一个tip就是注意到非递归中序遍历的过程中,进栈的顺序恰好是前序遍历的顺序,而出栈的顺序恰好是中序遍历的顺序。 第二个需要注意的就是如何根据中序遍历和前序遍历构建出一棵二叉树。 第三个是二叉树的后序遍历, 阅读全文
posted @ 2020-09-05 16:18 Garrett_Wale 阅读(128) 评论(0) 推荐(0)
摘要:Root of AVL Tree PAT-1066 这是关于AVL即二叉平衡查找树的基本操作,包括旋转和插入 这里的数据结构主要在原来的基础上加上节点的高度信息。 import java.util.*; /** * @Author WaleGarrett * @Date 2020/9/5 10:41 阅读全文
posted @ 2020-09-05 11:53 Garrett_Wale 阅读(144) 评论(0) 推荐(0)
摘要:Complete Binary Search Tree PAT-1064 本次因为涉及到完全二叉排序树,所以可以使用数组的形式来存储二叉排序树 对输入序列排序后,得到的是中序遍历二叉排序树的序列。对这颗二叉排序树进行中序遍历,将每个结点的值放入二叉树的存储数组中,最后遍历数组即可求出层次遍历的序列。 阅读全文
posted @ 2020-09-05 10:31 Garrett_Wale 阅读(132) 评论(0) 推荐(0)
摘要:Is It a Binary Search Tree PAT-1043 主要涉及到根据前序遍历序列片段是否是一颗二叉树,这里有一个小tip就是插入序列就是二叉树的前序遍历序列。 第二个是会对排序二叉树进行前序遍历,后序遍历,镜像排序二叉树的前序遍历,后序遍历等操作。 题目的整体难度不大,但是对二叉树 阅读全文
posted @ 2020-09-05 09:50 Garrett_Wale 阅读(139) 评论(0) 推荐(0)
摘要:#include <iostream> #include<algorithm> using namespace std; class Test { public: Test(int num) { this->num = num; } public: int num; }; //引用 void cha 阅读全文
posted @ 2020-05-30 10:30 Garrett_Wale 阅读(164) 评论(0) 推荐(0)
摘要:需要的头文件有 在主函数中使用StreamTokenizer和PrintWriter类 输入结束标志参数为 注意读入的时候要调用nextToken()函数,输出之后调用flush()函数,以hdu 1029为例 二、BufferedReader实现快速输入读一行 需要导入的jar 阅读全文
posted @ 2020-05-10 21:21 Garrett_Wale 阅读(314) 评论(0) 推荐(0)
摘要:Wormholes "POJ 3259" 这题是最短路问题中判断是否存在负圈的模板题。 判断负圈的一个关键就是理解:如果在图中不存在从s可达的负圈,最短路径不会经过一个顶点两次。while循环最多执行v 1次。 这题还需要注意的是输入的w条边的权值是负值,因为这是虫洞边。 阅读全文
posted @ 2020-05-10 17:26 Garrett_Wale 阅读(218) 评论(0) 推荐(0)
摘要:Currency Exchange "POJ 1860" 这题其实是最短路问题的变形,但是这里不用求解最短路,而是求解路径中是否存在正圈。如果存在正圈则说明兑换后的货币可以一直增加,否则不能实现通过货币转化来增加财富。 这和经典的使用Bellman Ford判断是否存在负权也有不同的地方,这里需要在 阅读全文
posted @ 2020-05-10 16:59 Garrett_Wale 阅读(426) 评论(0) 推荐(0)
摘要:Heavy Transportation "POJ 1797" 这题是最短路题型的变形,该题不是求起点到终点的最短路,而是求路径中的最小边的最大值。 这题的求解思路是:将原来dijkstra中的松弛方程改一下,改成求最小边的最大值的松弛方程:d[j]=max(d[j],min(d[i],w[i][j 阅读全文
posted @ 2020-05-09 21:23 Garrett_Wale 阅读(543) 评论(0) 推荐(0)
摘要:Til the Cows Come Home "POJ 2387" 这题是最简单的最短路求解题,主要就是使用dijkstra算法,时间复杂度是$O(n^2)$. 需要注意的是,一定要看清楚题目的输入要求,是先输入边,再输入顶点,一开始我没看清,wrong answer了一次。 阅读全文
posted @ 2020-05-09 19:50 Garrett_Wale 阅读(211) 评论(0) 推荐(0)
摘要:斐波那契数列 "PREV 29" 这题的难度很大,主要是题目中的要求数据量太大,1^18,这不管是运行时间会超时,而且累加的话也会超出long型的大小。 我采用多种方法来求解这道题目,逐步优化算法。 1. 基础解法:直接暴力求解斐波那契数列(得分:40) 我们深入考虑斐波那契的性质: 1.1 f(x 阅读全文
posted @ 2020-03-16 16:17 Garrett_Wale 阅读(427) 评论(0) 推荐(0)
摘要:分巧克力 "PREV 37" 可以使用暴力来求解,但是1^10显然运行时间会超出1s的时间限制。 这里可以通过二分查找的方法来优化这次搜索。 阅读全文
posted @ 2020-03-15 23:12 Garrett_Wale 阅读(458) 评论(0) 推荐(0)
摘要:包子凑数 "PREV 36" 这题首先需要知道不定方程的一些性质,即:ax+by=c的解的情况: 如果a,b互质,则一定有解且由无穷多个。若限制x,y =0,则ax+by=c有可能有负数解,即存在有限个c使得方程无正数解。且存在max{c|使方程无解的c}=a b a b; 如果a,b不互质,则可能 阅读全文
posted @ 2020-03-15 22:22 Garrett_Wale 阅读(313) 评论(0) 推荐(0)
摘要:正则表达式 "PREV 35" 首先看到题目的要求是求解最长的字符串,一看到最长应该想到一般是使用深度优先搜索和动态规划。 本题中求解的是正则表达式,因为符号只有四种,而且括号可以嵌套,所以我们可以从递归的角度求解最长的长度。 当遇到的字符是左括号时,这个时候应该继续递归以等待右括号的出现,当遇到的 阅读全文
posted @ 2020-03-15 21:14 Garrett_Wale 阅读(283) 评论(0) 推荐(0)

上一页 1 ··· 5 6 7 8 9 10 下一页