经典算法
董道不渝
余将董道而不豫兮
展开
-
汉诺塔
//三柱 #include #include int min = 0; void hanoi(int n, char ch1, char ch2, char ch3) { if(n == 1) { printf("%c->%c\n", ch1, ch3); min++; //return; } else { hanoi(n - 1, c原创 2014-11-21 11:06:10 · 349 阅读 · 0 评论 -
N皇后问题
#include #include #include #define N 8 int column[N];//存放每行放置的列数 int cnt = 0;//放置方案总数 int canplace(int r) { int i; for(i = 0; i < r; i++) { if(column[r] == column[i] || abs(colum原创 2014-11-26 10:41:58 · 363 阅读 · 0 评论 -
约瑟夫环
用循环链表来实现: #include #include struct node { int num; struct node* next; }; int main(void) { int i, n, m; scanf("%d%d", &n, &m); node* p = (node*)malloc(sizeof(node)); node* x =原创 2014-12-17 16:26:16 · 437 阅读 · 0 评论 -
leetcode:Longest Palindromic Substring
class Solution { public: string longestPalindrome(string s) { string sNew, longest; int i, j = 0, iMax = 1, id = 1; int p[2222]; memset(p, 0, sizeof(p));原创 2015-08-02 20:17:22 · 352 阅读 · 0 评论 -
最少钱币数
这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为 2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。 显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。 #inc原创 2015-11-06 12:37:14 · 635 阅读 · 0 评论