这题不难写出,问题是够不够简洁。 import java.util.ArrayList;public class Solution { public int FindGreatestSumOfSubArray(int[]…
二叉树的按数组创建
首先空的节点在数组中用#号表示。 思路: 1.把树从根左右的顺序从0开始标号。那么第i号节点的左孩子的标号是2*i+1,右孩子是2*i+2。 2.程序上实现标号: 即创建一个TreeList类型的List记作nodeLi…
判断树是否为二叉树的子树
给定的结构是HasSubtree(root1,root2) 即判断root1做根的树中是否含有root2节点做根的树。 二叉树的问题基本可以确定是用递归了,肯定是先递归遍历前者找到与右边树的根相等的节点,然后再判断对应子…
打印数组中数量过半的数字
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 j…
二查搜索树与中序遍历
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向 模版: public class Solution { public T…
第N个丑数
题目: 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 只含235也就是因子含235中的…
常用排序(插入、堆、归并)
一、插入排序 直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 对于一个数组a[n]来说,第一次a[0]…
常用排序(稳定性、时间/空间复杂度)
一、稳定性 排序算法的稳定性通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。 稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结…
list排序(Collections.sort())
Collections.sort(userList, new Comparator<User>() { @Override public int compare(User o1,User o2) { retu…
南阳ACM 第5题 BinaryMatch KMP算法实现
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public c…
多项式乘法 快速傅里叶变换
好久没写算法了,这才是本呀,还得拾起来. 快速傅立叶变换实现两个多项式相乘,求乘积的系数 例如,求(n^2 + 2*n + 1)(2*n^2 + 1),最高次幂…
分数化小数
输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b≤10⁶, c≤100。输入包含多组数据,结束标记为 a=b=c=0。 样例输入: 1 6 4 0 0 0 样例输出: Case 1: 0.1667 …