二叉树最大路径和

题目描述给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)思路首先我们分析一下对于指定某个节点为根时,最大的路径和有可能是哪些情况。第一种是左子树的路径加上当前节点,第二种是右子树的路径加上当前节点,第三种是左右子树的路径加上...

2017-09-04 13:32:58

阅读数 1087

评论数 0

二叉树中和为某值的路径

题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路这道题有好几个需要注意的细节。public class Solution { ArrayList<ArrayList<Inte...

2017-09-03 17:06:35

阅读数 318

评论数 0

二叉树序列化和反序列化

题目描述请实现两个函数,分别用来序列化和反序列化二叉树实现public class Solution { String Serialize(TreeNode root) { StringBuffer sb=new StringBuffer(); if(roo...

2017-09-01 18:32:36

阅读数 336

评论数 0

二叉搜索树转为双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。实现中序遍历二叉搜索树就可以,需要记录节点的前一个指针。同时需要标记下是否是双向链表的头节点public TreeNode Convert(TreeNode root) { ...

2017-09-01 17:26:20

阅读数 307

评论数 0

二叉树

二叉树的常见操作import java.util.LinkedList; import java.util.Queue; import java.util.Stack;import javax.swing.LayoutStyle; import java.util.ArrayList; clas...

2017-09-01 16:02:48

阅读数 307

评论数 0

螺旋矩阵顺时针打印

问题描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.解法需要注意四个边界。impo...

2017-09-01 15:49:21

阅读数 527

评论数 0

最大下标距离

题目描述给定一个整形数组,找出最大下标距离j−i, 当且A[i]解法public static int maxindexdistance(int A[]) { boolean[] isDes = new boolean[A.length]; int min = A[...

2017-09-01 15:34:12

阅读数 300

评论数 0

两数之和

题目描述给定一个整型数组,找出其中的两个数使其和为某个指定的数,并返回两个数的下标。思路这里其实要考虑数组可能出现相同值的情况。public int[] twoSum(int[] nums, int target) { int[] result=new int[2]; ...

2017-09-01 11:03:19

阅读数 224

评论数 0

数组奇偶划分

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分。情况一不需要保证奇数和偶数之间相对位置不变。 这里可以用快排的思想。时间复杂度为O(n)public static int[] reOrderArray(int[]...

2017-08-28 15:06:42

阅读数 933

评论数 0

数组中出现次数超过一半的数字

问题描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路一最容易想到的思路就是对数据排序,那么中间的数字就是要求的数字。时间复杂度就...

2017-08-28 14:36:58

阅读数 288

评论数 0

重建二叉树

问题描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路这道题还是有点绕的,尤其是索引值的确定,多想想吧。...

2017-08-25 15:03:17

阅读数 246

评论数 0

搜索排序数组

问题描述假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。解决对于这种部分有序的数组都可以使用二分法 public int search(int[...

2017-08-24 17:17:30

阅读数 290

评论数 0

翻转链表

翻转链表的两种情况翻转单链表很简单public ListNode reverseList(ListNode head) { ListNode tmp=null; ListNode dummy=new ListNode(0); dummy.next=n...

2017-08-23 18:45:12

阅读数 300

评论数 0

最大公共子串&&最大公共子序列

问题描述最大公共子序列给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。 状态转移方程为:如果A[i]=A[j],则dp[i][j]=dp[i-1][j-1]+1,如果不等,则dp[i][j]=Math.max(dp[i][j-1],dp[i-1][j])public class ...

2017-08-18 16:32:13

阅读数 261

评论数 0

最长上升子序列

问题描述给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。public class Solution { /** * @param nums: The integer array * @return: The length of LIS (longest...

2017-08-18 16:24:38

阅读数 276

评论数 0

寻找旋转排序数组中的最小值

问题描述假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。没有重复值public class Solution { /** * @param nums: a rotated sorted...

2017-08-18 15:53:44

阅读数 307

评论数 0

推荐算法的优缺点

基于领域的协同过滤基于矩阵分解矩阵分解方法将高维User-Item评分矩阵映射为两个低维用户和物品矩阵,解决了数据稀疏性问题。优点: 预测精度较高 缺点: 1、模型训练比较费时。 2、不具有很好的可解释性。分解出来的用户和物品矩阵的每个维度 无法和现实生活中的概念来解释,无法用现实概念给每...

2017-06-08 16:41:39

阅读数 4216

评论数 0

链表去重

题目在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路1、链表头可能被删除,在前面再加一个head节点, 2、如果当前元素...

2017-04-25 13:59:02

阅读数 639

评论数 0

特征冗余

刻画特征之间相似性的几种方法: 1、对称不确定性(SU):取值在(0,1)之间,值越大,X,Y之间相关性越大,当取值为0,表示X,Y之间相互独立,反之,代表之间具有强依赖性,意味着当知道其中一个变量就可以推测出另一个变量。∑i=0ni2=(n2+n)(2n+1)6\sum_{i=0}^n i^2...

2017-04-24 20:33:17

阅读数 3352

评论数 0

Top K

问题描述:在一维数组中找到第K大的数。 比如说: 数组[3,2,1,5,6,4] k = 2, 返回 5.解法一:最容易想到的就是排序整个数组。可以用快速排序的方法。public int findKthLargest(int[] nums, int k) { final in...

2017-04-24 11:06:03

阅读数 556

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭