摘要:
什么是Ioc 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。 阅读全文
摘要:
题目描述 在数组中找到连续的子阵列(包含至少一个数字),其数量最大。例如:给一个数组{-2,1,-3,4,-1,2,1,-5,4},连续的子序列[4,1,2,1]具有最大的和= 6。 分析 当我们从头到尾遍历这个数组的时候,对于数组里的一个整数,它有两种选择:1、加入之前的SubArray;2、自己 阅读全文
摘要:
题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。 基本思 阅读全文
摘要:
题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 基本思路 使用Partition的思想来解决问题。如果基于数组的第k个数字来调整,使得比第k个数字小的所有数字都位于数组的左边,比第k个数字大的所有数字都位于数组的右边 阅读全文
摘要:
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 基本思路 求整个字符串的排列,可 阅读全文
摘要:
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 基本思路 假设二叉搜索树为{10,6,14,4,8,12,16},按照中序遍历,当我们遍历转换到根节点(值为10的节点)时,它的左子树已经转换成一个排序的链表了,并且处在链表 阅读全文
摘要:
题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 基本思路 设二叉树为{10,5,12,4,7},和为22,则打印出两条路径,第一条路径为10,12,第二条路径为10,5,7。使用前序遍历的方法访问 阅读全文
摘要:
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 基本思路 在后序遍历得到的序列中,最后一个数字是树的根节点的值。数组中前面的数字可以分为两部分:第一部分是左子树节点的值,它们都比根节点的值小;第二部 阅读全文
摘要:
题目描述 输入两个整数序列,第一个序列表示栈的压入书序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相同。例如1、2、3、4、5是某栈的压入序列,序列5、4、3、2、1是该栈对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。 基本思路 设置两个索引pushIn 阅读全文
摘要:
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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. Java代码 阅读全文