随笔分类 -  剑指offer

摘要:在求一个字符串中所有字符的组合的时候,针对一个字符,有两种情况,假设在长度为n的字符串中选择长度为m的组合字符串, 第一是选择长度为n的字符串中的第一个字符,那么要在其余的长度n-1的字符串中选择m-1个字符 第二是不选择长度为n的字符串中的第一个字符,那么要在其余的长度n-1的字符串中选择m个字符 阅读全文
posted @ 2018-04-26 12:07 Allen101 阅读(758) 评论(0) 推荐(0)
摘要:基于回溯法思想: 阅读全文
posted @ 2018-04-17 16:13 Allen101 阅读(199) 评论(0) 推荐(0)
摘要:请实现两个函数,分别用来序列化和反序列化二叉树。 阅读全文
posted @ 2018-04-16 22:42 Allen101 阅读(121) 评论(0) 推荐(0)
摘要:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。 要求不能创建任何新的结点,只能调整树中结点指针的指向。 论差距有多大。 by bigGold: by myself: 阅读全文
posted @ 2018-04-16 18:10 Allen101 阅读(140) 评论(0) 推荐(0)
摘要:还是得多做题,细节的地方老出错误。 解题思路: 阅读全文
posted @ 2018-04-16 11:50 Allen101 阅读(167) 评论(0) 推荐(0)
摘要:package April_2018; import java.util.ArrayList; /** * @Author: Allen * @Version:v1.00 * @CreateData:2018年4月15日 上午10:29:24 * 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。 * 路径定义为从树的根结点开始往下一直到叶结点所经过的结... 阅读全文
posted @ 2018-04-15 17:29 Allen101 阅读(124) 评论(0) 推荐(0)
摘要:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{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],2,6 阅读全文
posted @ 2018-04-14 20:07 Allen101 阅读(203) 评论(0) 推荐(0)
摘要:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路: 已知条件:后序序列最后一个值为root;二叉搜索树左子树值都比root小,右子树值都比root大。 1、确定root; 2、遍历序列(除去root结点 阅读全文
posted @ 2018-04-09 11:45 Allen101 阅读(382) 评论(0) 推荐(0)
摘要:import java.util.ArrayList; import java.util.Stack; /** * 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印, * 第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 */ public class ZhiZiXingDaYinErChaShu { public static... 阅读全文
posted @ 2018-04-09 10:22 Allen101 阅读(178) 评论(0) 推荐(0)
摘要:层次遍历二叉树 阅读全文
posted @ 2018-04-08 18:05 Allen101 阅读(85) 评论(0) 推荐(0)
摘要:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 例如序列1,2,3,4,5是某 栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 (注意:这两个序列的长度 是相 阅读全文
posted @ 2018-04-08 16:14 Allen101 阅读(114) 评论(0) 推荐(0)
摘要:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如, 字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 阅读全文
posted @ 2018-04-07 16:56 Allen101 阅读(105) 评论(0) 推荐(0)
摘要:/** * @Author: Allen * @Version:v1.00 * @CreateData:2018年4月2日 上午9:31:45 *输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, *例如,如果输入如下矩阵: *1 2 3 4 *5 6 7 8 *9 10 11 12 *13 14 15 16 * 则依次打印出数字 * 1,2,3,4,8,12,16,15,... 阅读全文
posted @ 2018-04-02 11:21 Allen101 阅读(154) 评论(0) 推荐(0)
摘要:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 阅读全文
posted @ 2018-04-02 09:26 Allen101 阅读(134) 评论(0) 推荐(0)
摘要:操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 阅读全文
posted @ 2018-04-02 08:51 Allen101 阅读(119) 评论(0) 推荐(0)
摘要:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 阅读全文
posted @ 2018-04-01 12:09 Allen101 阅读(159) 评论(0) 推荐(0)
摘要:public ListNode deleteDuplication(ListNode pHead) { if(pHead==null){ return null; } ListNode preNode = null; ListNode curNode = pHead; w... 阅读全文
posted @ 2018-01-21 16:35 Allen101 阅读(168) 评论(0) 推荐(0)
摘要:public class DeleteNode { public static void main(String[] args){ Solution18 solution18 = new Solution18(); ListNode18 head = solution18.initLinkList(new ListNode18()); ... 阅读全文
posted @ 2018-01-21 13:00 Allen101 阅读(126) 评论(0) 推荐(0)
摘要:/*输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分, 所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。*/ public class ReorderArrayOddBeforeEven { public static void main(String args[]){ int intArr... 阅读全文
posted @ 2018-01-21 10:59 Allen101 阅读(284) 评论(0) 推荐(0)