213. House Robber II

题目:You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses at this place ar...

2019-02-08 21:41:36

阅读数 30

评论数 0

leetcode 198. House Robber

题目:You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stoppin...

2019-02-08 21:27:36

阅读数 47

评论数 0

leetcode 62. Unique Paths(动态规划)

题目:A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in the diagram below). The robot can only move either down or right at a...

2019-02-06 21:41:21

阅读数 32

评论数 0

leetcode 279. Perfect Squares

题目:Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, …) which sum to n. Input: n = 12 Output: ...

2019-02-05 20:52:28

阅读数 48

评论数 0

leetcode 343. Integer Break(从递归到动态规划)

题目;Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum...

2019-02-02 22:38:15

阅读数 34

评论数 0

leetcode 40. Combination Sum II(找出和为target的组合)

题意:找出和为target的组合 算法思路: 首先将数组拍个序,然后进入递归方法,如果target等于当前元素,则加入该组合,为防止组合重复,有2种方式解决,第一,结果中不包含该组合则加入结果;第二,在尝试下一个元素时,检查当前元素是否和下一个元素相等,相等则跳过,不相等则继续。如果target大...

2019-01-26 22:03:26

阅读数 28

评论数 0

leetcode 78. Subsets II(求集合的子集)

题意:求集合的子集 算法思路:先给该集合从小到大排个序。子集分为0个元素(空集)、1、2、…n个元素,找出其对应的组合。为防止找的的子集不重复,有2种方法,第一:子集不在结果中,则加入,花O(n)时间复杂度;第二:在尝试下一个元素时,检查当前元素是否和下一个元素相等,相等则跳过,不相等则继续。 ...

2019-01-26 21:28:12

阅读数 40

评论数 0

leetcode 401. Binary Watch

题目简述: A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom represent the minutes (0-59). Given a non-n...

2019-01-26 21:05:35

阅读数 61

评论数 0

leetcode 108. Convert Sorted Array to Binary Search Tree

题意:将一个有序数组转化为一棵平衡二分搜索树 算法思路:我们可以将一个有序数组不断往中间切分,中间值就是根结点,其左右子树结点个数相等或相差1,然后它的左半部分和右半部分按照相同的方式切分下去,左半部分挂在左子树上,右部分挂在右子树上,这样需要用一个标记区别左右子树。 我在leetcode上提交的...

2019-01-21 21:09:12

阅读数 24

评论数 0

leetcode 450. Delete Node in a BST

题意:删除二分搜索树中值为key的结点 算法思路:当root为null时,直接返回root。首先,用二分搜索法查找到值为key的结点,在查找的过程中记录该结点的父结点并标记该结点是父结点的左孩子还是右孩子(用于保存删除某结点时涉及到的其他结点)。若没有找到key值的结点,则原样返回。若父结点为nu...

2019-01-21 20:16:12

阅读数 29

评论数 0

leetcode 113. Path Sum II

题意:求和为sum的路径,将满足的所有路径返回 算法思路:首先创建一个list(用来存储所有路径),当root为null时,返回list。当该结点为叶节点并且其值为sum,则将该结点作为一条路径加入list中,返回list。从它的左孩子获取满足条件的路径,然后遍历获得的路径,将本结点加入到该路径后...

2019-01-20 23:01:47

阅读数 20

评论数 0

leetcode 129. Sum Root to Leaf Numbers

//leetcode 129. Sum Root to Leaf Numbers public static int sumNumbers(TreeNode root) { List<Integer> list = new ...

2019-01-20 22:38:55

阅读数 17

评论数 0

二叉树的递归调用

二叉树本身就是递归定义的,所以在二叉树上运用递归非常方便。下面相关算法的思想。 leetcode 104. Maximum Depth of Binary Tree 题意:找根结点到叶子结点的最长距离(即最大深度) 算法思路:当结点为null时,返回0,否则返回左右子树最大距离+1。 附上...

2019-01-18 22:19:22

阅读数 30

评论数 0

leetcode 347. Top K Frequent Elements(优先队列的使用)

算法思路: 首先,将每个数出现的频率以键值对的方式存入HashMap中。创建一个优先队列,队列中的元素是数字和该数字出现的频率组合的信息对,为此,我特地创建了一个信息对的类(C++提供了,java貌似没有提供),不过也挺简单的,当是学习吧。需要重写比较器,使得进队后信息对是按频率从小到大排序(底层...

2019-01-18 13:38:48

阅读数 36

评论数 0

leetcode 127. Word Ladder

算法思路: 该算法是一个广度搜索问题,查找变换的最优路径(即变换的次数最少)。在java中,因为不能直接构建的一个数据对,所以只能创建一个类Pair2,有2个成员word和step,含义:到达当前单词所经历的单词总个数(也可以说是路径长度)。创建一个以Pair2为类型的队列,将当前数据对封装成P...

2019-01-16 22:59:33

阅读数 50

评论数 0

leetcode 102. Binary Tree Level Order Traversal

算法思路: 二叉树的层次遍历,该算法的重点在于找到每一层次的最后一个结点,初始第一层的最后一个结点last为root,然后将根结点放入队列,以队列不为空的条件循环遍历,设置下一层的最后一个结点为preLast,对于出队的结点的左右结点进行入队操作(前提是入队的结点不为空)并且将入队的结点赋值给pr...

2019-01-16 20:49:47

阅读数 33

评论数 4

leetcode 71. Simplify Path(Unix下简化路径)

算法思路: 首先设置一个String类型的栈。用spilt方法,对path进行分割,以“/”为分隔符分割得到一组字符串。接着遍历这组字符串,遇到空字符串(“”)和当前目录(".")跳过,若字符串为"…“且栈不为空时弹栈...

2019-01-14 19:59:10

阅读数 33

评论数 0

leetcode 20. Valid Parentheses

算法思路: 题目的意思就是求后缀表达式的值,题目保证该后缀表达式是合法的,先设置一个int类型的栈。遍历该表达式,若是数字的字符串,将其转化为int类型后压入栈中,其中有个小问题,处理负数字符串要注意,其判定条件(个人想法)是:str[0]=’-’ &&a...

2019-01-14 15:18:10

阅读数 22

评论数 0

leetcode 143. Reorder List

2019考研408的一道算法题,很伤心,在这里把算法思路理一下,别的不多说,向前看。找出中间结点,然后将后半部分结点逆序,最后将前半部分和后半部分连接起来。第一次统计结点个数n,第二次遍历,遍历到中间结点时,处理奇数个数和偶数个数的情况,若是奇数个数,最中间的节点将是变换结果后的最后一个结点,将其...

2019-01-13 23:36:52

阅读数 21

评论数 0

leetcode 61. Rotate List

Rotate List算法思路: 首先,给链表加上一个虚拟头结点,利用双索引找到倒数第k+1个结点q和最后一个结点p,则q是转化后最后一个结点,q.next是转化后的第一个节点。利用穿针引线法将其重新连接成一个链表。最终返回的是q.next结点。考虑特殊情况,可以更好地优化算法,如果取余后k值为0...

2019-01-13 21:43:14

阅读数 73

评论数 2

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