水题
DakerYi
Learn and share!
展开
-
递归画图形
问题讲解首先,我觉得这一类题都是一个套路,让我们来先认识一下:一般递归画图形这种题目,都是先给你一个原始图形(最简单的),然后让你在这个图形的周围画出和它一样的图形,随着层数增加,图形会成指数倍增加,例如:输入n, 当n==1时:o当n==2时: oooo o当n==3时: o ooo o o o oooooooooo o o o o ooo原创 2016-10-07 23:15:36 · 7824 阅读 · 1 评论 -
LeetCode 5. Longest Palindromic Substring
LeetCode 5. Longest Palindromic Substring题目 Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest pal转载 2016-03-16 10:50:37 · 331 阅读 · 0 评论 -
快速排序
快速排序思想:快速排序的思想巧秒,利用分治的思想,可以极快排序数组。其基本思想分两步: 1. 给你一个数组,让你选择数组中的任意一个数作为基数,然后让数组中所有比基数小的数都放在放在基数的左边,所有比基数大的数放在基数的右边。 2. 将刚才基数的位置作为中点,将数组中基数左边的所有元素做1操作,将基数右边的所有元素做1操作。 看到步骤2,就很容易想到这里面是递归调用的。所以我们的关键任务就是如原创 2015-05-09 13:18:59 · 707 阅读 · 0 评论 -
篮桥杯 - K好数
篮桥杯 - K好数题目 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。 输入格式 输入包含两个正整数,K和L。 输出格式原创 2016-03-10 11:11:18 · 403 阅读 · 1 评论 -
篮桥杯 - 最大最小公倍数
篮桥杯 - 最大最小公倍数题目 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式 输入一个正整数N。 输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 106。思路1. 穷举这道题最容易想到的当然是穷举了,写一个原创 2016-03-10 10:45:21 · 363 阅读 · 1 评论 -
Project Euler - 3
欧拉项目 题目3转载 2014-10-23 09:31:29 · 547 阅读 · 0 评论 -
Project Euler - 4
private static ArrayList nums; public static void main(String[] args){ boolean flag = true; nums = new ArrayList(); for (int i = 999; i >= 100 && flag; i--) { for (int j = 999; j >= 100 &&原创 2014-10-23 13:26:41 · 401 阅读 · 0 评论 -
Project Euler - 6
欧拉项目 第6题:problem :原创 2014-10-28 12:45:53 · 446 阅读 · 0 评论 -
Project Euler - 5
欧拉项目 题目4problem:原创 2014-10-27 19:50:20 · 413 阅读 · 0 评论 -
ProjectEuler - 7
问题: By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.What is the 10 001st prime number?解决方案:原创 2014-11-03 17:18:44 · 438 阅读 · 0 评论 -
ProjectEuler - 8
问题:The four adjacent digits in the 1000-digit number that have the greatest product are 9 × 9 × 8 × 9 = 5832.731671765313306249192251196744265747423553491949349698352031277450632623957831801原创 2014-11-03 20:17:16 · 761 阅读 · 0 评论 -
LeetCode 4. Median of Two Sorted Arrays
LeetCode 4. Median of Two Sorted Arrays题目 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be原创 2016-03-12 13:33:42 · 321 阅读 · 0 评论 -
LeetCode - 3.Longest Substring Without Repeating Characters
题目 Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3.原创 2016-03-12 00:51:45 · 296 阅读 · 1 评论 -
最长公共子序列和最长公共子串(动态规划)总结
今天对最长公共子序列和最长公共子串又做了一些研究,发现如果用动态规划来解决这两个问题,方法是出奇的相似,下面我来介绍一下。理论最长公共子串:两个字符串中,相同的最长子串,字符必须是相连的 最长公共子序列:两个字符串中,相同的最长序列,字符不一定是相连的比如: a[] = “abcde” b[] = “bce” 那么: 最长子串:”bc” 最长子序列:”bce”理解我们先来看子串:最长公共原创 2016-09-29 10:55:02 · 1072 阅读 · 0 评论 -
反转字符串中的单词
反转字符串中的单词,腾讯笔试训练题#include <iostream>#include <cstdio>#include <cstring>using namespace std;void reverseStr(char *str, int start, int end){ int len = end-start+1; if(len <= 0) return; char原创 2016-09-01 22:09:47 · 704 阅读 · 0 评论 -
求全排列的4种情况
四种情况: 1. 给定字符串,无重复 2. 给定字符串,有重复 3. 给定数字n,求1-n的所有全排列 4. 使用STL函数自带求下一个全排列函数#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;// 字符串全排列,无重复void perm1(char*原创 2016-09-10 08:49:04 · 537 阅读 · 0 评论 -
算法入门-最长回文子串(1)
最长回文子串1:输入长度小于5000的字符串,包含大小写字母和标点符号和空格,求其中最长的回文字符串长度,忽略大小写。 例如:abc,cba 输出6 abc ,,,cb 输出4 …思路: 由于包含大小写,并且其中有符号空格,所以第一步我们应该处理一下字符串。从原字符串中提取处字符,并且都将其转化为大写字母,便于回文判断。 然后判断处理过后的字符串,问题就容易了, 代码如下:#includ原创 2016-06-15 21:04:59 · 375 阅读 · 0 评论 -
算法入门-求1!+2!+...+n!和的最后6位数
题目大意:输入n, 求出 1!+2!+…n! 的和的最后6位数。 题目有两个坑点: 1. 阶乘这个东西, 当n很大的时候可能超过int的表示范围。所以需要在求阶乘时 mod 1000000. 2. 由于只求最后6位数,如果阶乘中有一个数n后6位为0,那么从n开始,后面的数对最终答案都不影响了,因为 (n+1)!最后6位也一定为0…,所以可以避免求所有数的阶乘。#include <iostream原创 2016-06-15 19:55:52 · 980 阅读 · 0 评论 -
算法入门-打印蛇形数组
题目大意:输入n, 打印出n*n的数组,从周围一直向中心环绕递增, 如: 代码实现很简单:#include <iostream>#include <cstring>#include <cstdio>#define MAXN 100using namespace std;int a[MAXN][MAXN];int main(){ int n; while(cin>>n)原创 2016-06-15 19:43:05 · 1522 阅读 · 0 评论 -
甜食爱好者
甜食爱好者题目: 杰米和玛丽是两个喜欢吃蛋糕也喜欢数学的小孩.有一天大厨玛蒂娜给他们准备了两块一模一样的蛋糕后,杰米便说服玛丽来玩一个游戏. 游戏规则如下:杰米先把一块蛋糕分成两份,两份大小可以不同也可以相同.切完之后,玛丽决定是否要先选蛋糕.如果玛丽先选,他会选那份大的;如果杰米先选,玛丽可以预料杰米会选那份大的. 随后,杰米把另外一块蛋糕切成两份(请注意:他可以把一份原创 2015-03-16 23:06:51 · 1568 阅读 · 0 评论 -
LeetCode - 2. Add Two Numbers
LeetCode - 2. Add Two Numbers题目: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the t原创 2016-03-09 21:05:21 · 350 阅读 · 1 评论 -
LeetCode - 1. Two Sum
LeetCode - 1. Two Sum问题 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution.原创 2016-03-10 18:16:48 · 253 阅读 · 1 评论 -
ProjectEuler - 9
问题:A Pythagorean triplet is a set of three natural numbers, a b <c, for which,a2 + b2 =c2For example, 32 + 42 = 9 + 16 = 25 = 52.There exists exactly one Pythagorean triplet for which a原创 2014-11-13 14:51:35 · 616 阅读 · 0 评论 -
ProjectEuler - 10
问题:The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.Find the sum of all the primes below two million.翻译:求出所有小于2000000的质数的原创 2014-11-13 15:05:07 · 611 阅读 · 0 评论 -
ProjectEluer - 12
问题:Highly divisible triangular numberProblem 12The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7原创 2014-11-19 09:46:15 · 543 阅读 · 0 评论 -
A + B Problem II
来自杭电acmA + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 252440 Accepted Submission(s): 48647Problem DescriptionI have a原创 2015-05-06 09:27:04 · 1004 阅读 · 0 评论 -
Max Sum
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 168618 Accepted Submission(s): 39345Problem DescriptionGiven a sequence a[1],a[原创 2015-05-06 13:24:49 · 615 阅读 · 0 评论 -
Let the Balloon Rise
Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 85959 Accepted Submission(s): 32465Problem DescriptionContest time原创 2015-05-07 14:54:00 · 852 阅读 · 0 评论 -
Number Sequence
Number SequenceProblem DescriptionA 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).InputT原创 2015-05-08 20:28:55 · 703 阅读 · 0 评论 -
选择排序
选择排序 选择排序和冒泡排序一样,很简单,而且也比冒泡排序更好理解。原理: 从0位置开始,依次遍历数组0-(n-1)元素,选择最小(或最大)的,与第1个元素交换。 从1位置开始,依次遍历数组1-(n-1)元素,选择最小(或最大)的,与第2个元素交换。 … 直到n-1位置代码:// 选择排序void selectSort(int arr[], int len){ int te原创 2015-04-30 16:21:14 · 664 阅读 · 1 评论 -
插入排序
插入排序 今天来看看插入排序是怎么个排发,我觉得插入排序和冒泡有点像,但是又不错的改进。原理:从一个索引开始,如果它前面的元素值比索引位置值更大,就将前面元素值往后移动一个位置,然后再看更前面的元素,知道找到第一个比索引位置小的元素或数组的头,将索引位置的值填入到当前遍历到的位置。文字看起来比较抽象,我们来看一下图解: 之所以被称为插入排序,就是因为上面的元素是有序的,然后从后面每一个元素要原创 2015-05-06 09:08:15 · 620 阅读 · 0 评论 -
希尔排序
希尔排序 希尔排序是本人非常喜欢的一种排序,虽然网上很多人说这种排序是不稳定的,但是实践出真知,大家可以将所有排序方法放在一起跑一堆数据,希尔排序速度是非常快的,很多时候甚至比快排更快哦!也许是我的实验数据不够吧,大家可以亲测一下!原理:希尔排序的原理很简单,只要前面的插入排序看懂了,希尔排序就会很easy,因为希尔排序是是对插入排序的增强版。希尔排序提出的思想是先让数据局部有序,然后再排。比原创 2015-05-07 10:39:10 · 657 阅读 · 0 评论 -
冒泡排序
排序算法是做算法的基础,也是程序员的基本功.以前在学校没有认真学,现在回头看看其实排序算法也挺有意思的.所以接下来几篇博客我将详细列举常用的排序算法.冒泡排序最简单的排序算法简单粗暴, 先上代码 :// 冒泡排序void bubbleSort(int arr[], int len){ int temp; for (int i = 0; i len; +原创 2015-04-29 18:54:04 · 687 阅读 · 0 评论 -
归并排序
归并排序思想归并排序和快速排序一样,都采用了分治的思想。将数组不断缩小,并行排序(递归),这样可以提高速度。那么归并又是怎样分治的呢?和快排一样,分为两个步骤: 1. 写一个函数,输入为两个有序的数组,经过函数后要求这两个数组合并成一个,并且有序。 2. 将原数组不断二分,将分开的两个数组作为参数传入1步奏的函数中。递归完毕函数就已经排序成功。代码实现首先我们来看步骤1的函数:void merg原创 2015-06-01 12:52:53 · 675 阅读 · 0 评论 -
堆排序
堆排序的堆不是指内存区域里面的堆,而是一种数据结构。堆可以分为“大顶堆”和“小顶堆”,堆其实是一种特殊的二叉树,“大顶堆”中根元素总比叶子元素大,“小顶堆”中根元素总比叶子节点小。当然要创建这样的堆结构还是有一定难度的,请自行参考其他资料。 这里我们使用到的是 STL 中的 priority_queue< T> 这个结构,这个默认就是一个“大顶堆”,所以用这个数据结构我们来实现排序就很简单了。代码原创 2015-08-21 18:11:04 · 596 阅读 · 0 评论 -
Project Eluer - 23
欧拉项目 23题 详解原创 2015-01-13 15:39:40 · 689 阅读 · 0 评论 -
Project Eluer - 22
欧拉项目第 22题,java 解法原创 2015-01-07 10:04:16 · 636 阅读 · 0 评论 -
Project Eluer - 16
Power digit sumProblem 16215 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.What is the sum of the digits of the number 21000?翻译: 2的15次方等于32768, 每一位数字之和为 3+2+7+6+8=26 .原创 2014-12-05 11:11:37 · 559 阅读 · 0 评论 -
ProjectEuler - 11
问题 :In the 20×20 grid below, four numbers along a diagonal line have been marked in red.08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 0849 49 99 40 17 81 18 57 60 87 17 40 98 43 6原创 2014-11-17 20:26:38 · 502 阅读 · 0 评论 -
Project Euler - 13
问题:Work out the first ten digits of the sum of the following one-hundred 50-digit numbers.3710728753390210279879799822083759024651013574025046376937677490009712648124896970078050417018260538原创 2014-11-24 18:56:00 · 661 阅读 · 0 评论