算法练习
moluchase
代码是程序员的朋友,虽然没有热情,但是非常忠实。
展开
-
关于n*m网格从左上到右下的走法数
#include #define M 5//行 #define N 5//列 int a[2][100];//堆栈,用来定位 void main() { //k为堆栈指针 int i=0,j=0,m=M,n=N,k=0,num=0,f1=0,f2=0,flag=0; while(k!=-1)//直到堆栈中没有数,跳出循环 { if(flag==0) { if(j<n原创 2015-04-08 14:10:58 · 3989 阅读 · 0 评论 -
关于背包问题的递归解法
2017年完美世界的两道笔试题 一道是0-1背包,一道是完全背包 第一道:n种价值的水果,礼品的价值为m,用礼品换取水果,如何使得换取水果数量最少?如果不能,返回-1 输入:第一行输入一串数字,代表水果的价值,第二行输入礼品的价值 输出:最少的水果数量 示例:5,2,3 2原创 2017-03-31 20:42:44 · 2211 阅读 · 0 评论 -
博弈问题之分黄金
2017年360笔试编程题 有A,B两伙马贼,他们把金矿分成n段,由A,B轮流从左端或右端占据一段,直至分完为止。 他们的选择方式都会向着各自的利益方向,使得自己能够得到最多的金矿 请输出他么获得的金矿结果 这道题现在回想起来是和背包问题是一样的问题,同样是递归,每次选择有两种情况,左边或者右边,哪边得到的结果大就选取哪边 参见http://blog.csdn.net/molu_原创 2017-03-31 21:10:51 · 334 阅读 · 0 评论 -
中括号序列绘制(比较有意思)
给出一个中括号序列,绘制其层次关系 这种题目没有可对比的地方,就直接粘代码了 //2017年今日头条编程题3 import java.util.Scanner; public class Draw { public static void main(String[] args) { drawBrackets(); } private static void drawBrack原创 2017-03-31 22:14:50 · 478 阅读 · 0 评论 -
关于括号匹配问题
2017年微软的一道笔试题 题目如下: 输入一串只含有括号的字符串,输出需要多少括号使得字符串括号能得到匹配,并输出有多少种方式使得字符串得到匹配 比如:输入 ()) 输出 1 2 有一种解法是:使用栈,如果得到匹配,则弹出,这样栈中剩下只有三种情况,全部是右括号;右括号+左括号;左括号 记下这些括号的标号,通过标号,来插空,然后把插完原创 2017-04-02 10:45:47 · 623 阅读 · 0 评论 -
关于尾递归
尾递归的定义是:当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归 具体参考 按顺序看 http://blog.csdn.net/fall221/article/details/9156753 http://blog.zhaojie.me/2009/03/tail-recursion-and-continuation.html htt原创 2017-05-15 15:16:01 · 412 阅读 · 0 评论 -
关于堆
最小堆的用处 优先队列 参考: http://www.cnblogs.com/luoxn28/p/5616101.html http://www.cnblogs.com/CarpenterLee/p/5488070.html 查找中位数的一种解法 http://www.cnblogs.com/lienhua34/archive/2011/12/06/2381299.html原创 2017-05-15 15:21:09 · 220 阅读 · 0 评论