随笔分类 -  剑指offer 算法题

摘要:题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4] 阅读全文
posted @ 2017-08-29 11:31 home普通的人 阅读(135) 评论(0) 推荐(0) 编辑
摘要:也可以使用类 阅读全文
posted @ 2017-08-29 09:23 home普通的人 阅读(87) 评论(0) 推荐(0) 编辑
摘要:#include using namespace std; bool dup1(int *a,int n,int *dup) { if(a==NULL||n=n) return false; } for(int i=0;i=n) return false; } int hashtable[n]; ... 阅读全文
posted @ 2017-08-28 21:46 home普通的人 阅读(140) 评论(0) 推荐(0) 编辑
摘要:#include using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x):val(x),next(NULL){}; } ; ListNode* daoshu(ListNode *head,int k) { if(head==NULL||k==0) ... 阅读全文
posted @ 2017-08-28 16:51 home普通的人 阅读(95) 评论(0) 推荐(0) 编辑
摘要:#include using namespace std; bool equal(double a,double b); double powabs(double a,unsigned int absb); bool chucuo=false; double pow(double a,int b) { if(equal(a,0)&&b-0.0000001&&a-b<0.000000... 阅读全文
posted @ 2017-08-28 15:34 home普通的人 阅读(138) 评论(0) 推荐(0) 编辑
摘要:请实现一个函数,把字符串中的每个空格替换成“%20”,例如输入“We are happy”,则输出“We%20are%20happy”。 阅读全文
posted @ 2017-08-09 23:42 home普通的人 阅读(128) 评论(0) 推荐(0) 编辑
摘要:输入一个字符串,打印出该字符串中字符的所有排列。 例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路: 把一个字符串看成两部分组成:第一部分为第一个字符,第二部分为后面的所有字符。 求整个字符串的排列,可以看出两步:首先求所有 阅读全文
posted @ 2017-08-06 09:52 home普通的人 阅读(177) 评论(0) 推荐(0) 编辑
摘要:求1+2+3+...+n,要求不能使用乘除法,for,while,if,else,switch,case等关键字及条件判断语句(a?b:c)。 1、构造函数 在类中定义静态成员变量N和sum,在构造函数中++N,sum+=N;如此一来,创建n个该类型的实例,就会调用n次构造函数,对应的静态变量也就随 阅读全文
posted @ 2017-07-30 23:16 home普通的人 阅读(175) 评论(0) 推荐(0) 编辑
摘要:0,1,...n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字,求出这个圆圈里剩下的最后一个数字。 阅读全文
posted @ 2017-07-26 22:17 home普通的人 阅读(123) 评论(0) 推荐(0) 编辑
摘要:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这五张牌是不是连续的,2~10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。 把5张牌看成一个数组,就看排序后的数组是不是连续的,大小王看成特殊的数字,例如定义为0,与其他数字区分开,0的作用就是补充其他数字间不连续的空缺。 阅读全文
posted @ 2017-07-26 16:36 home普通的人 阅读(1238) 评论(0) 推荐(0) 编辑
摘要:把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 s可能出现的值的范围为:n--6*n 1.递归思想 通过递归的思想将n个骰子的点数累加。 要求出n个骰子的点数和,可以先求出前n-1个骰子的点数和,然后加上第n个骰子的点数; 递归结束条件:n=1,此时某 阅读全文
posted @ 2017-07-26 14:12 home普通的人 阅读(256) 评论(0) 推荐(0) 编辑
摘要:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。 例如输入字符串“I am a student.”,则输出"student. a am I". 字符串的左旋转操作是把字符串前面的若干字符转移到字符串的后面。请定义一个函数实现字符串左旋转操作的功 阅读全文
posted @ 2017-07-16 20:39 home普通的人 阅读(225) 评论(0) 推荐(0) 编辑
摘要:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s,如果有多对数字的和等于s,输出任意一对即可。 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 阅读全文
posted @ 2017-07-16 16:11 home普通的人 阅读(169) 评论(0) 推荐(0) 编辑
摘要:#include using namespace std; struct TreeNode { int val; TreeNode *left,*right; }; void preOrderTraverse(TreeNode *p) { if(p) { coutvalleft); preOrderTraverse(p->ri... 阅读全文
posted @ 2017-05-01 22:33 home普通的人 阅读(268) 评论(0) 推荐(0) 编辑
摘要:题目:统计一个数字在排序数组中出现的次数。例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3由于3在这个数组中出现了4次,因此输出4。 阅读全文
posted @ 2017-05-01 09:20 home普通的人 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题目:输入两个链表,找出它们的第一个公共节点。链表的定义如下: 阅读全文
posted @ 2017-04-28 16:43 home普通的人 阅读(330) 评论(0) 推荐(0) 编辑
摘要:循环 解法一: 递归 解法二: 阅读全文
posted @ 2017-04-25 20:38 home普通的人 阅读(434) 评论(0) 推荐(0) 编辑
摘要:递归: 非递归: 时间复杂度为O(n)。 阅读全文
posted @ 2017-04-25 10:50 home普通的人 阅读(146) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示