Algorithm In Action
算法实战
全栈极简
将全栈进行到底。
展开
-
门萨智商测试标准版
一个小时30道题,准备好纸和笔,测测自己的智商吧。:)原创 2016-07-18 19:47:00 · 54 阅读 · 0 评论 -
10道算法题
10道算法题,来自于gitchat王晓华的《算法应该怎么“玩”》专栏。1. 农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。请考虑一种方法,让农夫能够安全地安排这些东西和他自己过河。2. 请你把10根放在篮子里的香蕉分给10只猴子,每只猴要得到一根,最后篮子里还要留下一根香蕉,...原创 2018-08-22 09:38:00 · 28 阅读 · 0 评论 -
空瓶换酒问题
今天CSDN某群,里面有人发了一道挺有意思的题,这里贴一下。为了防止老年痴呆,拿起笔来练一下吧!:)思路理清了,就可以用代码实现一下:class Program { static void Main(string[] args) { //初始化钱数为10元 int money = 10; /原创 2016-04-21 16:41:59 · 8323 阅读 · 15 评论 -
谁拥有鲨鱼
这是群里面有人发出来的一道题,当时觉得挺有意思就拿起笔来详细的推倒起来。题目有5座连续相邻的房子,并且每个房子有同的颜色:蓝色,绿色,红色,白色和黄色每间房子的主人有不同的国籍:英国、印尼、德国、美国和荷兰每个人喝不同的饮料:葡萄汁、咖啡、牛奶、茶和水每个人都有不同的工作:记者、邮递员、魔术师、宇航员和精算师每个人饲养不同的宠物:老虎、斑马、鹦鹉、鲨鱼和土豚英国人住在红房子荷兰人饲养土豚印尼人喝茶原创 2015-05-17 22:21:58 · 3115 阅读 · 1 评论 -
考考你有没做生意天赋
王小姐是卖鞋的,一双鞋进货价45元,甩卖30元,顾客来买两双鞋给了张100元,王小姐没零钱,于是找邻铺换了100元。(事后邻铺发现钱是假的,王小姐又赔了邻铺100元)请问王小姐一共亏了多少元?(这道题目不简单,到底亏了多少?这套题曾在各种群里做过测试,100人的群,半个小时之内只有1个人答对。)解题思路:钱的总量是一定的,不会多不会少。也就是说,别人赚的钱,就是你亏的钱。所以,抓住收支平衡...原创 2016-06-18 22:20:00 · 43 阅读 · 0 评论 -
一道网传上海幼儿园升小学的数学题
就是下面这道题:思路:条件一:3朵红花=60,所以一朵红花=20;条件二:一朵红花+2朵兰花(5个花瓣)=30,20+2*一朵兰花(5个花瓣)=30,所以一朵兰花(5个花瓣)=5;条件三:兰花(5个花瓣)-两朵黄花=3,5-2*一朵黄花=3,所以一朵黄花=1;求:一朵黄花+一朵红花*一朵兰花(4个花瓣)=?答案:1+20*4=81.关键:一朵兰花(5个花瓣)=5,则一朵兰花(1个...原创 2016-06-25 19:56:00 · 31 阅读 · 0 评论 -
拉灯问题(标准答案都是错的!)
又来一道小学奥数题,据说多年以来的标准答案都是错的!我们来看看题目是怎样的。150盏亮着的电灯,各有一个拉线开关控制,按顺序编号为1,2,3,…,150.将编号为,3的倍数的灯的拉线各拉一下;再将编号为5的倍数的灯的拉线各拉一下,拉完后亮着的灯数为______盏.?分析:一看这个题目心里一想,这个还不简单啊?关键的不就是公倍数嘛!150盏灯亮着,关掉3的倍数的灯(3,6,9,12,......原创 2016-11-01 09:56:00 · 88 阅读 · 0 评论 -
猴子分桃
问题:五只猴子分一堆桃子。第一只猴子把这堆桃子平分为五份,多了一个,这只猴子把多的一个桃子扔入海中,拿走了一份。第二个猴子把剩下的桃子又平分成五份,又多了一个,它同样把多的一个桃子扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的。问原来最少有多少只桃子?答案:public class peach{ public static void main(String [] ar...原创 2016-06-16 22:49:00 · 27 阅读 · 0 评论 -
最少有多少鸡蛋(求最小公倍数)
一筐鸡蛋:1个1个拿,正好拿完。2个2个拿,还剩1个。3个3个拿,正好拿完。4个4个拿,还剩1个。5个5个拿,还差1个。6个6个拿,还剩3个。7个7个拿,正好拿完。8个8个拿,还剩1个。9个9个拿,正好拿完。问筐里最少有多少鸡蛋?用c#实现!代码:public int GetEggCount(){ int result = 0; //答案一定是9的倍数,实际上就是求满...原创 2017-02-06 16:49:00 · 34 阅读 · 0 评论 -
计算数列:2/1+3/2+5/3+8/5+…的前10项的和
题目:计算数列:2/1+3/2+5/3+8/5+…的前10项的和分析:乍一看,还以为是斐波拉契数列呢,然后就用递归方程把分子、分母分别求出来,然后相除求和即可。规律是这样,但这么做程序算法会溢出。所以不能利用递归循环来解此题。进一步分析会发现,后面每一项的分子是前一项的分子和分母的和,而每一项的分母是前一项的分子,所以抓住这个规律,直接用循环即可求出数列前N项的和。代码:#include...原创 2017-12-25 16:38:00 · 126 阅读 · 0 评论 -
杨辉三角
代码:public class Test { public static void main(String[] args) { // TODO Auto-generated method stub int i = 0 ,j = 0 , N=10; int a[][] = new int[N][N]; for(i =0;...原创 2016-11-12 16:17:00 · 32 阅读 · 0 评论 -
n皇后问题
问题:n皇后问题:输入整数n,要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,输出全部方案。输出结果里的每一行都代表一种摆法。行里的第i个数字如果是n,就代表第i行的皇后应该摆放在第n列。皇后的行、列编号都是从1开始算。样例输入:4样例输出:2 4 1 33 1 4 2代码:#include "stdafx.h"#include <iostream>#i...原创 2017-12-19 10:34:00 · 34 阅读 · 0 评论 -
0-1背包问题
题目:有N件物品和一个容积为M的背包。第i件物品的体积w[i],价值是d[i]。求解将哪些物品装入背包可使价值总和最大。每种物品只有一件,可以选择放或者不放(N<=3500,M<=13000)。分析:用F[i][j]表示取前i种物品,使它们总体积不超过j的最优取法取得的价值总和。要求F[N][M]边界:if(w[1]<=j) F[1][j] = d[1];...原创 2017-12-26 11:09:00 · 35 阅读 · 0 评论 -
分治——快速排序
快速排序数组元素的思想:1)设k=a[0],将k挪到适当位置,使得比k小的元素都在k左边,比k大的元素都在k右边,和k相等的,不关心在k左右出现均可(O(n)时间完成)2)把k左边的部分快速排序3)把k右边的部分快速排序代码:class Program{ static void Main(string[] args) { int[] a = { 93...原创 2017-12-18 12:48:00 · 32 阅读 · 0 评论 -
动态规划——数字三角形
题目:73 88 1 02 7 4 44 5 2 6 5在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。(三角形的行数大于1小于等于100,数字为0-99)解题思路:用二维数组存放数字三角形。D(r,j):第r行第j个数字(r,j从1开始算)...原创 2017-12-18 15:04:00 · 33 阅读 · 0 评论 -
递归——算24
题目:给出4个小于10的正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24.输入:输入数据包括多行,每行给出一组测试数据,包括4个小于10的正整数。最后一组测试数据中包括4个0,表示输入的结束,这组测试不用处理。输出:对于每一组测试数据,输出一行,如果可以得到24,输出“YES”;否则,输出“NO”。样例...原创 2017-12-19 14:29:00 · 35 阅读 · 0 评论 -
二分算法——求解方程的根
题目:求下面方程的一个根:f(x)=x3-5x2+10x-80=0,若求出的根是a,则要求|f(a)|<=10-6解法:对f(x)求导,得f'(x)=3x2-10x+10.由一元二次方程求根公式知方程f'(x)=0无解,因此f'(x)恒大于0.故f(x)是单调递增的。易知f(0)<0且f(100)>0,所以区间[0,100]内必然有且只有一个根。由于f(x)在[0,100]内...原创 2017-12-18 10:38:00 · 31 阅读 · 0 评论 -
枚举——完美立方
题目:形如a3=b3+c3+d3的等式被称为完美立方等式。例如123=63+83+103。编写一个程序,对任给的正整数N(N≤100),寻找所有的四元组(a,b,c,d),使得a3=b3+c3+d3,其中a,b,c,d大于1,小于等于N,且b≤c≤d。输入:一个正整数N(N≤100)。输出:每行输出一个完美立方。输出格式为:Cuba=a,Triple=(b,c,d)其中a,b,c,d所在...原创 2017-11-30 14:24:00 · 34 阅读 · 0 评论