剑指offer
文章平均质量分 74
赏星乐事
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编程题:旋转数组的最小数字
1.分析思路 这道题你要是看清楚它的本质了,其实就是一道二分查找变形的题目。旋转之后的数组实际上可以划分为两个子数组部分。左边的数组大小都大于或者等于右边的数组大小。而要找的最小元素就是右边数组的第一个元素。2.方法一 从头选取数组元素将它与数组第一个元素相减的值记为P1,将当前选取的数组元素减去当前选取数组加一的元素值记为P2.如果P1小于P2,则当前选取数组加一的元素即为最小值原创 2017-03-25 10:55:11 · 442 阅读 · 0 评论 -
求1+2+3+...+n的和
问题描述 求1+2+3+4+….+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C) 解法 采用递归,利用位运算来结束循环 代码:class Solution{public: int GetSum(int n){ int sum = n; sum && (su原创 2017-07-12 09:19:07 · 853 阅读 · 0 评论 -
不用加减乘除做加法运算
题目 写一个函数,求两个整数之和,要求在函数体内不得使用加减乘除四则运算符。 解法 用位运算来解决 code:class Solution{public: int Add(int num1,int num2){ int t1,t2; do{ t1 = (num1&num2)<<1; //进位结原创 2017-07-12 09:32:09 · 423 阅读 · 0 评论 -
面试题:正则表达式匹配
题目 请实现一个函数用来匹配包含’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”匹配,但与“aa.a”及”ab*a”均不匹配。 思路解法: 对单个字符和’.’字符的匹配比较简单,关键是’*’怎么来匹配。 ‘*’字符的匹配情况如下原创 2017-07-14 16:18:08 · 817 阅读 · 1 评论 -
编程题:包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。剑指offer给出的思路: 我们可能想使用一个变量min来存放最小的元素。每次压入栈中一个元素的时候,如果新元素比这个变量min中保存的元素小,那么就将用新元素给min赋值,即更新min的值。但是,这样存在一个问题,那就是当当前最小的元素被弹出栈了,怎么得到栈中剩余元素的最小的元素呢? 因此,可原创 2017-08-03 15:26:21 · 197 阅读 · 0 评论 -
编程题:栈的压入弹出序列
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 输入: 每个测试案例包括3行:第一行为1个整数n(1<=n<=100000),表示序列的长度。第二行包含n个整数,表示原创 2017-08-03 15:52:21 · 278 阅读 · 0 评论
分享