随笔分类 -  剑指offer及平常

摘要:题目链接:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字 解题思路: 现在做题真是越来越有感觉了,当出现什么数组中找一次两次啊什么的,优先考虑HashMap。 如果没出现这个值,那么就传入<key,1>。 如果出现了,value++; 阅读全文
posted @ 2019-05-15 22:15 王爷爱吃秋刀鱼 阅读(168) 评论(0) 推荐(0)
摘要:题目链接:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 解题思路: 这道题考察的是HashMap,遍历一遍字符,如果这个字符在Map中,value++,否则传入<字符,1> 阅读全文
posted @ 2019-05-15 22:07 王爷爱吃秋刀鱼 阅读(175) 评论(0) 推荐(0)
摘要:题目链接:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
posted @ 2019-05-15 21:31 王爷爱吃秋刀鱼 阅读(139) 评论(0) 推荐(0)
摘要:题目链接:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 解题思路: 左右夹逼 阅读全文
posted @ 2019-05-15 21:21 王爷爱吃秋刀鱼 阅读(135) 评论(0) 推荐(0)
摘要:题目链接:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 解题思路: 回溯法 阅读全文
posted @ 2019-05-15 20:35 王爷爱吃秋刀鱼 阅读(190) 评论(0) 推荐(0)
摘要:题目链接:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 解题思路: 1. 后序遍历序列的最后一个元素为二叉树的根节点; 2. 二叉搜索树左子树上所有的结点均小于根结点、右子树所有的结点均大于根结点。 算法步 阅读全文
posted @ 2019-05-14 11:06 王爷爱吃秋刀鱼 阅读(219) 评论(0) 推荐(0)
摘要:题目链接:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 解题思路:按行打印是用队列。 阅读全文
posted @ 2019-05-14 10:28 王爷爱吃秋刀鱼 阅读(147) 评论(0) 推荐(0)
摘要:题目链接:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 阅读全文
posted @ 2019-05-14 10:26 王爷爱吃秋刀鱼 阅读(183) 评论(0) 推荐(0)
摘要:题目链接:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 解题思路:看的左神 阅读全文
posted @ 2019-05-14 10:11 王爷爱吃秋刀鱼 阅读(137) 评论(0) 推荐(0)
摘要:题目链接:操作给定的二叉树,将其变换为源二叉树的镜像。 解题思路:应用递归,先交换左子树与右子树,然后再交换左子树的子节点和右子树的子节点。 阅读全文
posted @ 2019-05-14 10:05 王爷爱吃秋刀鱼 阅读(122) 评论(0) 推荐(0)
摘要:题目链接:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 解题思路: 递归的方法,先判断根节点,如果相等,判断左子树以及右子树。 阅读全文
posted @ 2019-05-14 08:27 王爷爱吃秋刀鱼 阅读(143) 评论(0) 推荐(0)
摘要:题目链接:输入一个链表,反转链表后,输出新链表的表头。 阅读全文
posted @ 2019-05-13 22:04 王爷爱吃秋刀鱼 阅读(151) 评论(0) 推荐(0)
摘要:题目链接:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路: 数字-1做与操作 阅读全文
posted @ 2019-05-13 11:44 王爷爱吃秋刀鱼 阅读(190) 评论(2) 推荐(0)
摘要:题目链接:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 解题思路: 把递归写成非递归 题目链接:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 题目链接:一只青蛙一次可以 阅读全文
posted @ 2019-05-13 11:31 王爷爱吃秋刀鱼 阅读(117) 评论(0) 推荐(0)
摘要:题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 解题思路: 注意 阅读全文
posted @ 2019-05-10 15:28 王爷爱吃秋刀鱼 阅读(179) 评论(0) 推荐(0)
摘要:题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路: 当stack2不为空时,在stack2中的栈顶元素是最先进入队列的元素,可以弹出。当stack2为空时,我们把stack1中的元素逐个弹出并压入stack2.由于先进入队列的元素被压到stack1 阅读全文
posted @ 2019-05-10 14:54 王爷爱吃秋刀鱼 阅读(136) 评论(0) 推荐(0)
摘要:题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路: 像这种题首选递归来做,一个大的数组拆分成不同 阅读全文
posted @ 2019-05-10 08:43 王爷爱吃秋刀鱼 阅读(800) 评论(0) 推荐(0)
摘要:题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解题思路: 从尾到头这种首选方法肯定是栈啊,一个个输到栈里面去,然后不就行了。 阅读全文
posted @ 2019-05-09 17:01 王爷爱吃秋刀鱼 阅读(109) 评论(0) 推荐(0)
摘要:题目: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路: 设置一个StringBuilder可以append,(注意) String为字符串常量,而StringBuilder和S 阅读全文
posted @ 2019-05-09 16:46 王爷爱吃秋刀鱼 阅读(111) 评论(0) 推荐(0)
摘要:恢复内容开始 题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路 既然从左到右递增,从上到下也是递增,那就先找一个基点,基点就是右上角那个点 阅读全文
posted @ 2019-05-09 15:36 王爷爱吃秋刀鱼 阅读(127) 评论(0) 推荐(0)