码迷,mamicode.com
首页 >  
搜索关键字:剑指offer c++    ( 3728个结果
连续子数组最大和
题目来源:《剑指offer》面试题31、《编程之美》2.14 题目:输入一个整形数组,数组里有正数也有负数。数组中一个或连续多个整数组成一个子数组。求所有子数组的和的最大值 解法一:假设id代表自序列的一个起点,j代表终点。如果a[i]是负的,那么它不可能代表最优子序列的起点,因为任何包含a...
分类:编程语言   时间:2015-09-03 23:14:50    阅读次数:214
剑指offer——面试题40:数组中只出现一次的数字
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路:(1)首先考虑数组中若是只有一个数字是出现一次,其他都是出现两次的情况,在这种情况下,将所有的数字都位异或运算(^),因为相同的数字异或结果为0,所以最后地到的结果就是那个出现一次的数。(2)下面...
分类:编程语言   时间:2015-09-03 19:14:54    阅读次数:204
数组中出现次数超过一半的数字
题目来源《剑指offer》面试题29、《编程之美》2.3 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. 解法1:数组中有一个数字出现的次数超过了...
分类:编程语言   时间:2015-09-03 19:05:47    阅读次数:163
【剑指offer】13,包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。分析:使用两个栈,一个正常存取元素,一个栈用来存储最小的元素,代码如下: 1 import java.util.Stack; 2 3 public class Solution { 4 5 Stack s1...
分类:其他好文   时间:2015-09-03 11:35:19    阅读次数:133
【剑指offer】十四,栈的压入、弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。代码如下: 1 import...
分类:其他好文   时间:2015-09-03 11:33:56    阅读次数:123
剑指offer——面试题38:数字在排序数组中出现的次数(利用二分查找来找第一次和最后一次的位置)
题目:统计一个数字在排序数组中出现的次数。思路:因为是排好序的数组,所以可以采用二分查找的算法。一般最容易想到的思路是采用二分查找先找到一个,然后往他左右两边遍历,但是这个方法由于在n个数组中还可能有n个k,所以查找的复杂度还是O(n)可以先用二分查找算法找到第一个出现的位置,即当找到一个时,看它前...
分类:编程语言   时间:2015-09-03 10:19:58    阅读次数:350
【剑指offer】十二,二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。分析:镜像的递归定义就是将原有二叉树中节点的左右子树对调。代码如下: 1 /** 2 public class TreeNode { 3 int val = 0; 4 TreeNode left = null; 5 Tree...
分类:其他好文   时间:2015-09-02 00:07:34    阅读次数:211
【剑指offer】十一。树的子结构
题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。分析:两棵树A 和B,判断B是不是A的子树,分为三种情况,一,A的根和B的根相同,则继续比较A的左子树与B的左子树,A的右子树与B的右子树。二,若A的根和B的根不同,这比较B是不是在...
分类:其他好文   时间:2015-09-01 22:43:50    阅读次数:236
【算法题目】用两个栈实现一个队列
相关题目:《剑指offer》面试题7templateclass Queue { public: Queue(); ~Queue(); void Push(const T& value) { s1.push(value): } void...
分类:编程语言   时间:2015-09-01 16:45:15    阅读次数:160
剑指offer——面试题36:数组中的逆序对(归并排序)
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。思路:采用归并排序的思想,将数组中的元素分割成子数组,先统计出子数组里的逆序对的个数。同时将这些子数组的数字排成有序的慢慢往多的合并,在合并的过程中一面统计逆序对的个数,...
分类:编程语言   时间:2015-09-01 16:43:26    阅读次数:174
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!