递归
文章平均质量分 54
董道不渝
余将董道而不豫兮
展开
-
最少钱币数
这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了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 · 636 阅读 · 0 评论 -
剑指offer:二叉搜索树的后序遍历序列
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果,如果是则输出Yes,否则输出No(假设输入的数组的任意两个数字都互不相同)class Solution {public: bool Verify(vector seq) { int len = seq.size(); if(!len || len =原创 2015-11-17 21:10:57 · 351 阅读 · 0 评论 -
剑指offer:二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NUL原创 2015-12-01 17:06:09 · 395 阅读 · 0 评论 -
剑指offer:字符串的排列
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba(结果请按字母顺序输出)。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。class Solution {public: string tmp; vector res;原创 2015-12-02 21:50:00 · 431 阅读 · 0 评论 -
剑指offer:把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。class Solution {public: string s, mn = "x"; string PrintMinNumber(vector numbers) { if (numbe原创 2015-12-08 19:17:51 · 387 阅读 · 0 评论