刷题
Medlen
这个作者很懒,什么都没留下…
展开
-
删除排序链表中的重复元素
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3思路:如何确定头结点?建立一个哨位节点,在链表头部,最后返回该节点的下一个节点即...原创 2019-05-30 21:22:26 · 262 阅读 · 0 评论 -
LeetCode 螺旋矩阵 II
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]方法和螺旋矩阵一样解决方案:public int[][] generateMatrix(int n) { int k = n*n; int val = ...原创 2019-02-27 15:24:04 · 268 阅读 · 0 评论 -
leetCode 螺旋矩阵
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]在这道题上花费了不少时间,关于退出的临界条件,把握的不是很好。public List<Integer> spiralOrder...原创 2019-02-27 15:09:49 · 221 阅读 · 0 评论 -
岛屿的最大面积
岛屿的最大面积给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0...原创 2018-12-11 17:39:28 · 348 阅读 · 1 评论 -
HDU 1045 Fire Net java实现
原题在这 Fire Net刚开始自己想的太过复杂,所以一直连样例都过不去。无奈去网上看了一下别人的解答。写出如下AC代码: import java.util.Scanner;public class Main { private static Scanner in = new Scanner(System.in); private static char [][]matri...原创 2018-12-10 17:28:52 · 240 阅读 · 0 评论 -
Red and Black HDU 1312(图的深度优先遍历)
题目链接点击这里Red and Black使用方法:递归的深度优先遍历和非递归的深度优先遍历两种实现方式代码:import java.io.*;import java.util.Stack;import java.util.Scanner;public class Main { private static Scanner in = new Scanner(System.i...原创 2018-12-10 12:46:50 · 202 阅读 · 0 评论 -
Connect the Cities (最小生成树) java
Connect the CitiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 25242 Accepted Submission(s): 5846Problem DescriptionIn 2100, since the...原创 2018-12-03 21:19:15 · 170 阅读 · 0 评论 -
继续畅通工程 java实现
继续畅通工程Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 29927 Accepted Submission(s): 12581Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公...原创 2018-12-03 18:46:45 · 848 阅读 · 0 评论 -
杭电Constructing Roads(prim算法)java
Constructing RoadsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30008 Accepted Submission(s): 11361Problem DescriptionThere are N villa...原创 2018-12-03 18:13:09 · 335 阅读 · 1 评论 -
A strange lift (最短路径问题) java实现
原题链接:看原题戳这下面用的dijkstra算法实现。import java.io.*;public class Main { static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); static PrintWriter out = ne...原创 2018-12-08 23:44:13 · 197 阅读 · 0 评论 -
求一组数据的全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。class Solution { public void swap(int nums[],int i,int j){ int tmp = nums[i]; nums[i] = nums[j]; nums[j] = tmp; } public void permutation(...原创 2019-02-22 20:42:07 · 995 阅读 · 0 评论 -
LeetCode 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6...原创 2019-02-27 17:14:00 · 409 阅读 · 0 评论 -
LeetCode--最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?转自:https://...转载 2019-04-24 19:22:41 · 355 阅读 · 0 评论 -
LeetCode----下一个排列
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1对于这道题,重要的是找到规律,实现算法比较简单;既然是找规...原创 2019-04-19 21:44:11 · 232 阅读 · 0 评论 -
LeetCode 子集 java实现
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]从题目中可以看出,当你求子集[1,2,3]的时候用到了子集[1,2],而求子集[1,2]又用到了子集[1]。所以我们可以发现,我们所...原创 2019-02-27 12:06:11 · 1451 阅读 · 0 评论 -
最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。解决方案有三种:暴力解法、动态规划、Manacher算法。这里我用的是动态规划算法,Manacher还不是很了解,以后有机会再仔细研究吧。public String longestPalindrome(Strin...原创 2019-02-27 11:11:06 · 95 阅读 · 0 评论 -
巴什博奕
巴什博奕:巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。如果有m+1个物品,那么无论第一个人如何拿取,第二个人都会全部拿走。因此如果我们一直让第二个人一直保持m+1的状态,那么一定会赢。然后我们可以推导出获胜法则:n=(m+1)r+s;(r为任意整数,0<s<=m,);第一个人第一次要取走s件物品,如果第二个人取走k件...原创 2019-02-26 21:39:14 · 765 阅读 · 0 评论 -
Huffman编码
因为Huffman编码比较经典,所以就尝试写了一下。源代码:import java.util.*;class TreeNode implements Comparable<TreeNode>{ char ch; int nums; Boolean isLeaf = false; TreeNode left; TreeNode right;...原创 2019-02-28 14:53:45 · 502 阅读 · 0 评论 -
LeetCode 557. 反转字符串中的单词 III
我的代码,可以翻转包含任意空格数的单词。解决代码:class Solution { public String reverseWords(String s) { if(s==null || s.length()==1 || s.length()==0) return s; char str[] = s.toCharArray(); in...原创 2019-02-23 20:55:36 · 118 阅读 · 0 评论 -
LeetCode 搜索二维矩阵 II
public boolean searchMatrix(int[][] matrix, int target) { if(matrix.length==0 || matrix[0].length==0) return false; int i=matrix.length-1; int j=0; while(true){ ...原创 2019-02-27 22:12:45 · 223 阅读 · 0 评论 -
LeetCode 不同的二叉搜索树(动态规划)
解题思路:以i为根,左边为[1,i-1],共i-1个数,右边为[i+1,n]共n-i-1个数。因此要计算以i为根的搜索二叉树的个数,就应当计算左子树和右子树二叉搜索树的个数相乘。这样一步步迭代,就可以归纳出等式。dp[n] = dp[0]*dp[n-1] + dp[1]*dp[n-2]+…+dp[n-2]*dp[1]+dp[n-1]*dp[0];这里n代表数的个数,即连续的n个整数组成的二...原创 2019-02-27 20:33:03 · 322 阅读 · 0 评论 -
find the most comfortable road(并查集+克鲁斯卡尔算法)java实现
原题连接 find the most comfortable road需要注意的是,在使用并查集的查找算法时,要进行路径压缩,否则超时以下是AC代码import java.io.*;import java.util.Arrays;public class Main { static StreamTokenizer in = new StreamTokenizer(new Buffe...原创 2018-12-08 19:13:07 · 270 阅读 · 0 评论 -
Eddy's picture(Prim算法)java实现
Eddy’s pictureTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12304 Accepted Submission(s): 6144Problem DescriptionEddy begins to like pa...原创 2018-12-05 11:07:37 · 184 阅读 · 0 评论 -
Is It A Tree?(并查集) java
Is It A Tree?Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 31011 Accepted Submission(s): 7087Problem DescriptionA tree is a well-known ...原创 2018-12-02 18:46:29 · 413 阅读 · 2 评论 -
Symmetric Order(Java)
Symmetric Order Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14750 Accepted: 8722 DescriptionIn your job at Albatross Circus Management (yes, it’s run by a bunch of clow...原创 2018-09-03 09:05:01 · 219 阅读 · 0 评论 -
The 3n + 1 problem (java)
The 3n + 1 problem Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 61224 Accepted: 19418 DescriptionProblems in Computer Science are often classified as belonging to a cert...原创 2018-08-28 22:55:10 · 642 阅读 · 0 评论 -
Ride to School (java)
Ride to School Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 23879 Accepted: 9519 DescriptionMany graduate students of Peking University are living in Wanliu Campus, whic...原创 2018-08-28 07:00:51 · 328 阅读 · 0 评论 -
蓝桥杯算法训练 表达式计算(优化版)
问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。 输入格式 输入一行,包含一个表达式。 输出格式 输出这个表达式的值。 样例输入 1-2+3*(4-5) 样例输出 -4 数据规模和约定 表达式长度不超过100,表达式运算合法且运算过程都在int内进行。算法如下,解释全在代码中://#include<bits/st...原创 2018-03-30 22:32:53 · 1139 阅读 · 0 评论 -
1014. Product of Digits
1014. Product of Digits Time limit: 1.0 second Memory limit: 64 MB Your task is to find the minimal positive integer number Q so that the product of digits of Q is exactly equal to N. Input The i...原创 2018-03-22 22:25:11 · 253 阅读 · 0 评论 -
十六进制转换为八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,比如01...原创 2018-03-10 18:54:58 · 842 阅读 · 0 评论 -
杭电1005 Number Sequence
Problem Description A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n).Input The i原创 2018-02-05 23:51:58 · 249 阅读 · 0 评论 -
杭电 1002题 A+B Problem II
Problem Description I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.Input The first line of the input contains an integer T(1Output F原创 2018-02-02 21:10:35 · 410 阅读 · 0 评论 -
杭电 1003题 Max Sum
Max SumProblem Description Given a sequence a[1],a[2],a[3]……a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1)原创 2018-02-04 16:27:36 · 396 阅读 · 0 评论 -
碰撞的小球
试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反...原创 2018-09-09 07:59:10 · 152 阅读 · 0 评论 -
csp 游戏
试题名称: 游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。 游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k...原创 2018-09-09 15:44:06 · 2062 阅读 · 0 评论 -
杭电 小希的迷宫 1272 (并查集) java
小希的迷宫Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 67158 Accepted Submission(s): 21066Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B...原创 2018-12-02 16:44:14 · 159 阅读 · 0 评论 -
How Many Tables(并查集) java
How Many TablesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47131 Accepted Submission(s): 23533Problem DescriptionToday is Ignatius’ b...原创 2018-12-02 15:54:43 · 191 阅读 · 0 评论 -
POJ 1001 Exponentiation
ExponentiationTime Limit: 500MS Memory Limit: 10000KTotal Submissions: 183326 Accepted: 44108DescriptionProblems involving the computation of exact values of very large magnitude and precision a...原创 2018-11-18 00:31:25 · 222 阅读 · 0 评论 -
POJ 1002 487-3279 java实现
487-3279Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 312219 Accepted: 55660DescriptionBusinesses like to have memorable telephone numbers. One way to make a telephone number memorab...原创 2018-11-19 21:01:47 · 405 阅读 · 0 评论 -
POJ 2080 Calendar (Java)
今天遇到一个问题,说简单也简单,只是有一个细节一直没有注意到,导致一直不通过。现在写下来,以警示自己。一定要注意细节!!注意细节!!!注意细节!!!!重要的事情说三遍题目如下:CalendarTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 15285 Accepted: 5434DescriptionA cale...原创 2018-11-07 22:59:01 · 201 阅读 · 0 评论