随笔分类 -  算法实现

贴出代码
摘要:提交网址https://oj.leetcode.com/problems/search-a-2d-matrix/有个矩阵中的数,从左向右递增,从上而下递增,快速查找是一个数是是否存在,剑指offer中的一道题,当时看懂了,写还是半天,其实按照矩阵的特点来找,从左上角找到又下角。如果大于搜索的值。搜索... 阅读全文
posted @ 2014-06-28 23:19 hansongjiang8 阅读(205) 评论(0) 推荐(0)
摘要:经过一段时间的闭馆修炼,张小二我又学到了不少东西,准备去会一会那个变态的面试官,我的未来他做主。M:是你小子。z:心理说,(是你大爷我),脸上满脸堆笑,连声说,是我是我,M:我们的大门随时向你打开,只要你达到我们的要求,废话少说,我们开始吧;3z:so eazy,1 。树有边和点组成,是一种特殊的图... 阅读全文
posted @ 2014-06-28 00:44 hansongjiang8 阅读(324) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/hansongjiang/p/3810825.html上篇文章我考虑的是可以找零的方式有几种,是运用搜索解决的,但是如果我们要解决的是优化问题,就是说最小要多少硬币呢?题目的地址是:http://acm.nyist.net/JudgeOnline/pro... 阅读全文
posted @ 2014-06-27 23:38 hansongjiang8 阅读(275) 评论(0) 推荐(0)
摘要:以前一想到学贪心的时候学到了,其实贪心算法的应用是前提的,在当前情况的币值下,例如我们常见 1,2 ,5,10都是精心设计的。其实大多数应该用动态规划,当然本文只用了搜素。具体思路看下面的连接。 http://www.acmerblog.com/dp6-coin-change-4973.html根据这个博客学习了下,我是按照我以前写的整数分解来写的,其实主要是分解的时候防止重复 例如 1 2 ... 阅读全文
posted @ 2014-06-26 20:50 hansongjiang8 阅读(547) 评论(0) 推荐(0)
摘要:用了半小时才写出来啊, 其实这种思路应用范围很广,利用有序性这个特点,比如本体只要是有序就行,例如两个集合是有序的,求交集,有序数组的查找,有序数组的归并,有序有了优化的可能。 输入一个正数 n,输出所有和为 n 连续正数序列 例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以输出 3 个连续序列 1-5、4-6 和 7-8。 分析:我们用两个数small和big分别表示... 阅读全文
posted @ 2014-06-26 17:43 hansongjiang8 阅读(3683) 评论(0) 推荐(1)
摘要:测试的数据都正确啊,跟别人正确代码也对比了一下,一直wrong ans,这道题是搞不定了,思路是这样的,一个int 的数,例如 一个数的二进制是1001100,那么大于这个数的最小的有相同个数1的数是都少?我的思路是这样:既然最小那么我就每次加一试试:,然后判断1个数是否相同,以上个数为例。1001... 阅读全文
posted @ 2014-06-23 20:16 hansongjiang8 阅读(116) 评论(2) 推荐(0)
摘要:主要思想来自 http://blog.csdn.net/wuyanyi/article/details/7243580 题目的连接,头次提交的同学需要注册 http://acm.nyist.net/JudgeOnline/problem.php?pid=258 此题多年前出现在江湖之中,微软面试100题有,2014网易有道又冲出江湖,此题是单调栈的使用,想了两天,明白一点。得不断的思考啊 其实还... 阅读全文
posted @ 2014-06-23 13:43 hansongjiang8 阅读(349) 评论(0) 推荐(0)
摘要:d[n]=min(dp[n-1]+1,dp[n、2]); n为偶数dp[n]=dp[n-1]+1;答案为18怎么通过计算求得答案?#includeusing namespace std;int d[2014];int min(int x,int y){ if(x>y) return y; ... 阅读全文
posted @ 2014-05-15 12:52 hansongjiang8 阅读(233) 评论(0) 推荐(0)
摘要:dp[ i][j]=max(四个方向点)+1; 四个方向上的点应该存在,且大于i,j,表示以i,j开始的点最长路径,递归的结束条件不用判断,因为 dp[][]最大数位置肯定 直接结束,随后次大值肯定能结束,以此类推,所以可以执行,但自下而上动态规划不好写。因为要确定这些数的大小,麻烦。 #include#includeusing namespace std;int dp[101][101];i... 阅读全文
posted @ 2014-05-11 19:07 hansongjiang8 阅读(166) 评论(0) 推荐(0)
摘要:描述计算n!的十进制表示最后有多少个0输入第一行输入一个整数N表示测试数据的组数(1<=N<=100)每组测试数据占一行,都只有一个整数M(0<=M<=10000000)输出输出M的阶乘的十进制表示中最后0的个数比如5!=120则最后的0的个数为1样例输入6360100102423456873537... 阅读全文
posted @ 2014-05-06 11:32 hansongjiang8 阅读(210) 评论(0) 推荐(0)
摘要:这个方程有两种形式,本文采用if(s[i]=s[j]) dp[i][j]=d[i-1][j-1] dp[i][j]=min(dp[i][k]+dp[k+1][j],dp[i][j]) (i=#include#includeusing namespace std;#define min(x,y) (x... 阅读全文
posted @ 2014-05-04 21:18 hansongjiang8 阅读(128) 评论(0) 推荐(0)
摘要:一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子。游戏的规则是这样的。设有一堆石子,数量为N(1<=N<=1000000),两个人轮番取出其中的若干个,每次最多取M个(1<=M<=1000000),最先把石子取完者胜利。我们知道,TT和他/她的室友都十分的聪明,那么如果是TT先取,他/她会取得游戏的胜利么 公式为n%(m+1)!=0可以赢得,我看... 阅读全文
posted @ 2014-04-29 19:44 hansongjiang8 阅读(143) 评论(0) 推荐(0)
摘要:运行结果如下5 //测试组数1()1对应的卡特兰个个数为12(())()()2对应的卡特兰个个数为22(())()()2对应的卡特兰个个数为23((()))(()())(())()()(())()()()3对应的卡特兰个个数为54(((())))((()()))((())())((()))()(()(()))(()()())(()())()(())(())(())()()()((()))()((... 阅读全文
posted @ 2014-04-25 19:23 hansongjiang8 阅读(142) 评论(0) 推荐(0)
摘要:以下转自http://www.ahathinking.com/archives/177.html 题二:给定一系列x轴的点坐标,例如 1,3,7,8,9,11这些坐标升序放在数组中,现在给一根绳子,长度为4,问绳子最多能覆盖的点数有多少,例如绳子放前面只能覆盖两个点,1,3,如果放 public class Main { public static void main(String[] a... 阅读全文
posted @ 2014-04-25 19:20 hansongjiang8 阅读(172) 评论(0) 推荐(0)
摘要:运行结果 0000000100100011010001010110011110001001101010111100110111101111 package huawei;public class 零一问题 { public static void zuhe(int res[],int index,int len) { if(index==len) { ... 阅读全文
posted @ 2014-03-21 09:55 hansongjiang8 阅读(245) 评论(0) 推荐(0)
摘要:下面将练习大量的树操作 package 乒乒乓乓;import java.io.ObjectInputStream.GetField;import java.util.ArrayList;import java.util.Iterator;import java.util.Stack;/* * http://blog.csdn.net/yhhazr/article/details/7947962 ... 阅读全文
posted @ 2014-03-15 20:24 hansongjiang8 阅读(195) 评论(0) 推荐(0)
摘要:package huawei;import java.util.Scanner;public class 约瑟夫环 { private static class Node { public int num; public Node next; public Node(int n) { num=n; } } public static String getOutString(int len, String str, int m) { String ans=""; String s[]=new String[len]; int n[]=new int[len]; ... 阅读全文
posted @ 2014-03-09 21:10 hansongjiang8 阅读(488) 评论(0) 推荐(0)
摘要:1 //逆转链表http://blog.163.com/lichunliang1988116@126/blog/static/26599443201282083655446/ 2 #include 3 #include 4 typedef struct Node 5 { 6 int data; 7 Node *next; 8 }*Linklist,ListNode; 9 void initLink(Linklist *head) 10 { 11 12 Node *node=(Node *)malloc(sizeof(Node)); 13 n... 阅读全文
posted @ 2013-10-09 15:08 hansongjiang8 阅读(276) 评论(0) 推荐(0)