数据结构与算法
文章平均质量分 77
晨曦寒水
简单就是美!
I wanna be a problem killer!
Life is short, you need Python!
展开
-
PAT 数素数 C语言版本
题目描述:令Pi表示第i个素数。现任给两个正整数M 4,请输出PM到PN的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 6原创 2015-04-10 16:35:52 · 881 阅读 · 0 评论 -
copy list with random pointer
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of the list.解法:算法很巧妙,不用保存原始链表的映射关系,构建新转载 2015-03-11 21:37:55 · 455 阅读 · 0 评论 -
PAT 数组元素循环右移问题 Java版本
问题描述:一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N ( 1原创 2015-04-08 19:20:38 · 794 阅读 · 0 评论 -
LeetCode Number of Islands Java版本
题目描述:Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. Y原创 2015-04-09 10:30:00 · 838 阅读 · 0 评论 -
动态规划~概念理解
动态规划(dynamic programming)1.动态规划是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。2.任何数学递推公式都可以直接转换成递归算法,但是基本现实是编译器常常不能正确对待递归算法,结果导致低效的程序。当怀疑很可能是这种情况时,我们必须再给编译器提供一些帮助,将递归算法重新写成非递归算法,让后者把那些子问题的答案系统地记录在一个表转载 2015-04-21 20:43:13 · 606 阅读 · 0 评论 -
LeetCode Triangle Java版本
题目描述:Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle[ [2]原创 2015-04-21 16:15:53 · 530 阅读 · 0 评论 -
LeetCode Reorder List Java版本
题目描述:Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given {1,2,3,4}, reorder i原创 2015-04-16 21:13:40 · 501 阅读 · 0 评论 -
LeetCode Sort List Java版本
题目描述:Sort a linked list in O(n log n) time using constant space complexity.题目分析:时间复杂度要求O(n log n),符合这个要求的排序算法有快速排序、堆排序和归并排序。但这个是链表,又要求是常数空间,所以不太好解决。看的别人的解法,归并排序(分而治之),感觉做的很好,因此写在这里分享一下原创 2015-04-15 16:19:03 · 579 阅读 · 0 评论 -
PAT 素数对猜想 Java版本
题目描述:让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N (输入格式:每个测试输入包含1个测试用例,给出正整数N。输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。输入样例:20原创 2015-04-08 14:53:57 · 906 阅读 · 0 评论 -
LeetCode Rotate Array Java版本
题目描述:Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].Note:Try to come up as many solutions原创 2015-04-13 15:38:00 · 596 阅读 · 0 评论 -
Professor Q's Software Java版本
题目描述:#1136 : Professor Q's Software时间限制:10000ms单点时限:1000ms内存限制:256MB描述Professor Q develops a new software. The software consists of N modules which are numbered from原创 2015-04-23 10:10:39 · 700 阅读 · 0 评论 -
编程之美 格格取数 C语言版本
题目描述:时间限制:2000ms单点时限:1000ms内存限制:256MB描述给你一个m x n (1 ij输入多组测试数据。首先是数据组数T对于每组测试数据,第1行是两个正整数m, n,分别表示矩阵的行数和列数。接下来的m行,每行n个整数,之间用一个空格分隔,表示矩阵A的元素。输出每组数据输出一行,表示选出的原创 2015-04-12 21:03:58 · 707 阅读 · 0 评论 -
PAT 三角形判断 Java版本
/*题目描述:给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。输入格式:输入在一行中顺序给出6个[-100, 100]范围内的数字,即3个点的坐标x1, y1, x2, y2, x3, y3。输出格式:若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”原创 2015-04-07 21:35:20 · 710 阅读 · 0 评论 -
PAT Sort with Swap(0,*) C语言版本
题目描述:Given any permutation of the numbers {0, 1, 2,..., N-1}, it is easy to sort them in increasing order. But what if Swap(0, *) is the ONLY operation that is allowed to use? For example, to so原创 2015-04-11 20:08:46 · 563 阅读 · 0 评论 -
PAT 三角形判断
/*给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。 输入格式: 输入在一行中顺序给出6个[-100, 100]范围内的数字,即3个点的坐标x1, y1, x2, y2, x3, y3。 输出格式: 若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周转载 2015-04-07 21:33:35 · 1408 阅读 · 0 评论