- 博客(34)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 【剑指offer】6.4抽象建模能力——面试题44:扑克牌的顺子
//题目描述//LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为
2016-01-15 17:16:03 376
原创 【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串
左旋转字符串//题目描述//汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!class Solution {public: string
2016-01-15 17:14:57 639
原创 【剑指offer】6.3知识迁移能力——面试题41:和为s的两个数字VS和为s的连续正数序列
和为S的连续正数序列//题目描述////小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! //
2016-01-15 17:13:45 759
原创 【剑指offer】6.3知识迁移能力——面试题39:二叉树的深度
//题目描述//输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(N
2016-01-15 17:11:22 383
原创 【剑指offer】6.3知识迁移能力——面试题38:数字在排序数组中出现的次数
暴力搜索//题目描述//统计一个数字在排序数组中出现的次数。class Solution {public: int GetNumberOfK(vector data ,int k) { int n=data.size(); if(n==0)return 0; int cnt=0; for(int i=0;i<n;i++){ if(data[i
2016-01-15 17:03:28 332
原创 【剑指offer】5.3时间效率与空间效率的平衡——面试题36:数组中的逆序对
树状数组的思想,不过会受到N的影响,扩展离散+树状数组//题目描述//在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。#include#includeusing namespace std;const int N=100005;class Solution {public: int Inve
2016-01-15 15:43:36 323
原创 【剑指offer】5.3时间效率与空间效率的平衡——面试题35:第一个只出现一次的字符
hash表//题目描述//在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始#include#includeusing namespace std;class Solution {public: int FirstNotRepeatingChar(string str) {
2016-01-15 15:42:24 373
原创 【剑指offer】5.3时间效率与空间效率的平衡——面试题34:丑数
//题目描述//把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。#includeusing namespace std;class Solution {public: int GetUglyNumber_Solution(int index) {
2016-01-15 15:41:10 473
原创 【剑指offer】5.2时间效率——面试题31:连续子数组的最大和
//题目描述////HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?
2016-01-13 10:00:42 506
原创 【剑指offer】5.2时间效率——面试题30:最小的k个数
//题目描述////输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 #include#include#includeusing namespace std;class Solution {public: vector GetLeastNumbers_Solution(vector input, in
2016-01-13 09:59:57 412
原创 【剑指offer】5.2时间效率——面试题29:数组中出现次数超过一半的数字
对时间空间影响的几个方面:1、编程习惯对代码的时间效率有很大影响,例如,c/c++程序员要养成采用引用(或指针)传递复杂类型参数的习惯。如果采用值传递的方式,从形参到实参会产生一次复制操作,造成时间和空间的浪费。2、使用循环和递归实现的时间效率可能会不一样。3、所使用的数据结构和算法也会带来影响
2016-01-13 09:59:09 509
原创 【剑指offer】4.4分解让复杂问题简单化——面试题26:复杂链表的复制
使用map的思想//题目描述////输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。 #include#include#includeusing namespace std;struct RandomListNode { int label; struct RandomListNode *next, *ra
2016-01-11 21:06:57 398
原创 【剑指offer】4.3举例让抽象问题具体化——面试题25:二叉树中和为某一值的路径
//题目描述////输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 #include#include#includeusing namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode
2016-01-11 20:43:01 445
原创 【剑指offer】4.3举例让抽象问题具体化——面试题23:从上往下打印二叉树
//题目描述////从上往下打印出二叉树的每个节点,同层节点从左至右打印。 #include#include#include#includeusing namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val
2016-01-11 20:41:22 419
原创 【剑指offer】4.3举例让抽象问题具体化——面试题22:栈的压入、弹出序列
//题目描述////输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。#include#include#includeusing namespace std;class S
2016-01-11 20:39:40 428
原创 【剑指offer】4.3举例让抽象问题具体化——面试题21:包含min函数的栈
//题目描述////定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。#include#includeusing namespace std;// stk 保存依次进入栈的数据// minstk 保存依次进入栈时当前的最小值的栈class Solution {public: void push(int value) { stk.push(value
2016-01-11 20:38:29 450
原创 【剑指offer】4.2画图让抽象问题形象化——面试题19:二叉树的镜像
//题目描述////操作给定的二叉树,将其变换为源二叉树的镜像。 #include#includeusing namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(
2016-01-04 21:24:37 472
原创 【剑指offer】3.4代码的鲁棒性——面试题15:链表中倒数第k个结点
所谓的鲁棒性是指程序能够判断输入是否合乎规范要求,并对不合要求的输入予以合理的处理。容错性是鲁棒性的一个重要体现。提高代码的鲁棒性的有效途径是进行防御性编程。防御性编程是指预见什么地方可能出现问题,并为这些可能出现的问题制定处理方式。 面试题15:链表中倒数第k个结点//题目描述////输入一个链表,输出该链表中倒数第k个结点。#include#includ
2016-01-03 20:26:05 552
原创 【剑指offer】3.4代码的鲁棒性——面试题17:合并两个排序的链表
//题目描述////输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 #include#includeusing namespace std;struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};
2016-01-03 20:23:59 323
原创 【剑指offer】3.4代码的鲁棒性——面试题16:反转链表
面试题16:反转链表//题目描述////输入一个链表,反转链表后,输出链表的所有元素。#include#include#includeusing namespace std;struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }}
2016-01-03 19:41:00 372
java微信开发工程
2015-12-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人