算法
wranmaoyi
这个作者很懒,什么都没留下…
展开
-
迷宫最短路径问题
0表示通路,1表示墙。 迷宫如下: 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0原创 2015-09-18 13:50:35 · 828 阅读 · 0 评论 -
从尾到头打印链表<剑指offer>
题目描述:输入一个链表,从尾到头打印链表每个节点的值。 链表节点定义:struct ListNode{ int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };解题思路: (1)反转链表(2)对应原创 2016-09-16 21:16:35 · 231 阅读 · 0 评论 -
最长对称字符子串
问题: 输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。 测试用例: 输入:iqiyiyiq abccba 输出:4 3int MaxLenSub(char *str){ if (str==NULL|| *str=='\0' )原创 2016-08-28 21:24:00 · 595 阅读 · 0 评论 -
求最大连续bit数
//求最大连续bit数 //功能:求一个byte数字对应的二进制数字中1的最大连续数 //例如3的二进制为00000011,最大连续2个1 //输入:一个byte数字 //输出:转成二进制后连续1的个数在c语言中没有byte数据,只有int 以及unsigned char此题主要分两步,一是将byte数据转换为2进制数组;二是统计最大连续个数首先,转换二进制 先a/2,再a*2,如果两数相原创 2016-02-29 19:26:49 · 661 阅读 · 0 评论 -
合唱队
// 题目描述: //计算最少出列多少位同学,使得剩下的同学排成合唱队形 //说明: //N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 //合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足存在i(1<=i<=K)使得Ti for(i=0;i<len;i++)原创 2015-12-09 21:14:43 · 311 阅读 · 0 评论 -
字符串最后一个单词的长度
题目描述: 计算字符串最后一个单词的长度,单词以空格隔开输入: 一行字符串,长度小于128 输出: 整数N,最后一个单词的长度样例输入: Hello world 样例输出: 5注意到scanf 不接收 空格,回车和Tab键。以此来获得最后一个单词 char str[128]; int N=0; do{ scanf("%s",str); }w原创 2015-12-01 16:57:19 · 403 阅读 · 0 评论 -
名字的漂亮度
题目: 描述:给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。给出多个名字,计算每个名字最大可能的“漂亮度”。样例输入:2 zhangsan lisi 样例输出:192 101题目分析: 每个字母的漂亮度根据字母个数排列。字母个数最多的,漂亮度=原创 2015-12-28 16:14:08 · 565 阅读 · 0 评论 -
二维数组中的查找
题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列数。 输入的第二行包括一个整数t(1<=t<=1000000):代表要查原创 2015-11-26 19:12:22 · 322 阅读 · 0 评论 -
二叉搜索树的后序遍历
//描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历。 // 如果是,则输出Yes,否则输出NO。假设输入的数组的任意两个数字都互不相同。 //1-样例输入:5 7 6 9 11 10 8 //1-样例输出:Yes //2-样例输入:7 4 6 5 //2-样例输出:No首先要知道二叉搜索树的定义: 或者是一棵空树,或者具有以下性质的二叉树: 1) 若它的左子树原创 2015-10-26 20:59:52 · 291 阅读 · 0 评论 -
奇偶排序
//描述:输入若干(不超过1000个)非负整数数字,请先取出为奇数的数字按从大到小排序,再取出偶数从小到大进行排序。 //运行时间限制:10s //内存限制:128Mbyte //输入:输入一串乱序的数字 //输出:输出排序后的数字 //样例输入:12 34 5 7 92 3 8 //样例输出:7 5 3 8 12 34 92整个问题的描述可以看出,需要做的就是 输入+判断奇偶+排序+输原创 2015-09-23 15:49:50 · 702 阅读 · 0 评论 -
用两个栈实现队列<剑指offer>
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路:将元素入队时压入一个栈中,随后通过另一个栈出队 (1)使用stack容器定义两个栈 stack<int> stack1; stack<int> stack2;(2)入队 stack1.push(node); //node为入队元素(3)出队 首先考虑特殊情况,两个栈皆为空原创 2016-09-17 11:09:30 · 281 阅读 · 0 评论