
leetcode
Ruixin1993
这个作者很懒,什么都没留下…
展开
-
LeetCode406. Queue Reconstruction by Height
406. Queue Reconstruction by Height让身高按照降序排列,高的在前面,同身高的情况下让要求前面人数人少的在前面import java.util.List;import java.util.Arrays;import java.util.Comparator;import java.util.LinkedList;public class LeetCode406原创 2017-02-28 23:02:46 · 339 阅读 · 0 评论 -
LeetCode257. Binary Tree Paths
257. Binary Tree Paths 1 / \2 3 \ 5["1->2->5", "1->3"]题意: 给出一个二叉树,返回所有根节点到叶子的路径public class LeetCode257 { public List<String> binaryTreePaths(TreeNode root) { List<String> pat原创 2017-03-16 16:29:39 · 391 阅读 · 0 评论 -
LeetCode Path Sum
LeetCode 113 Path Sum II题意: 给定一棵二叉树和一个和,判断从树的根结点到叶子结点的所有结点的和是否等于给定的和,如果等于就记录这条路径。 解题思路: 对树进行遍历,并且使用回溯法进行求解。/** * Definition for a binary tree node. * public class TreeNode { * int val; *原创 2017-03-02 22:27:22 · 494 阅读 · 0 评论 -
LeetCode Permutations
题目46. Permutations 思路: 例如:1 2 3 1. 先看2 3。 23是一种,交换一下32是一种。 2. 然后看1,1和2换 后面变成13,又有2种;1和3换,后面是12,又有2种。 3. 假如前面再有个0,0又要分别和123来换。 简单地说,每个数都可以在每一个位上来一发。import java.util.ArrayList;import java.util.Lis原创 2017-03-14 14:25:03 · 331 阅读 · 0 评论 -
Convert to Binary Search Tree
108. Convert Sorted Array to Binary Search Tree 题目:将一个有序数组转化为一个二叉排序树 思路:数组中间那个节点为树的根节点,根节点的左子树节点应该是根节点左边那部分的中间节点,根节点的右节点应该是根节点右边那部分的中间节点,后面就按照这个规律依次类推了。public class LeetCode108 { public class Tre原创 2017-03-14 23:06:54 · 320 阅读 · 0 评论 -
LeetCode 92 & 206. Reverse Linked List
题目206. Reverse Linked List 题意:将单链表反转 思路:从头节点开始指针逆转 具体实现见下面代码:public class LeetCode206 { public class ListNode { int val; ListNode next; ListNode(int x) { val = x; }原创 2017-03-13 10:43:46 · 406 阅读 · 0 评论 -
LeetCode 142. Linked List Cycle II
题目:[leetcode-142]思路寻找环的入口,需要做如下的数学证明。先给出示意图如下:做如下假设:设直线段的端点为X点X点环的入口点为Y点Y点快慢指针相遇的点为Z点Z点其中,有XY−→−=l,YZ−→−=r0ZY−→−=c,\overrightarrow{XY}=l, \quad\overrightarrow{YZ}=r_{0} \quad\overrightarrow{ZY}=c,原创 2017-03-11 22:41:37 · 298 阅读 · 0 评论 -
House Robber
198. House Robber 题意:强盗计划沿街去盗窃每一个住户,每个房子都有一定量的现金,阻止盗窃的唯一阻碍是相邻的两个房子之间有安全系统,一旦这两个房子同时被盗窃,系统就会自动联系警察。给定一系列非负整数代表每个房子的金钱,求出再不惊动警察的情况下能盗窃到的最大值。 方法一: 一维DP, 当前最大值相当于Math.max(nums[i - 1],nums[i] + nums[i -原创 2017-03-20 11:47:48 · 401 阅读 · 0 评论 -
汉明距离(Hamming Distance)
LeetCode 191 Number of 1 Bits计算一个数字的比特位包含1的个数思路1:将其转换成二进制,计算其中1的个数(见下面代码注释部分) 思路2:有个小技巧:value &= value - 1这个运算的结果就是把value最后一个1去掉,循环进行运算直到value等于0(所有的1都被去掉)就可以知道vaule拥有多少个1了public class LeetCode191 {原创 2017-03-08 11:17:56 · 3258 阅读 · 0 评论 -
求最大子数组之和
问题描述:一个有n个元素的数组,这n个元素可以为正数也可以为负数,数组中连续的一个或者多个元素可以组成一个连续的子数组,一个数组可能有多个连续的子数组,求子数组和的最大值,例如:{1,-2,4,8,-4,7,-1,-5}最大和为子数组{4,8,-4,7},最大值为15方法一:蛮力法 最简单也是最容易想到的方法就是找到所有子数组,然后求出子数组之和,在所有子数组的和取最大值。public stati原创 2017-03-17 19:07:05 · 484 阅读 · 0 评论 -
LeetCode 382
LeetCode 3821思路: - 首先计算链表长度 - 根据随机数,便利到指定的位置找到结果代码代码块语法遵循标准markdown代码,例如:public class LeetCode382 { int size = 0; ListNode head; public LeetCode382(ListNode head) { this.head = he原创 2017-02-27 12:38:44 · 527 阅读 · 0 评论 -
232. Implement Queue using Stacks
232. Implement Queue using Stacks思路: - 使用两个栈模拟队列Q, A为插入栈,B为弹出栈 - 假设AB都为空,则栈A提供入队列功能,栈B提供出队列功能 - 要入队列,入A即可,出队列分两种情况: – 1)若栈B不为空,直接弹出B的数据 – 2)若栈B为空,依次弹出A的数据,放入栈B中,再弹出栈B数据代码块import java.util.Stack;pu原创 2017-02-28 09:55:24 · 363 阅读 · 0 评论 -
225. Implement Stack using Queues
225. Implement Stack using Queues使用两个队列实现栈,思路: - q1为入队列提供压栈功能,q2为出队列提供出栈功能 - 要压栈,入队列q1即可,当出栈时,分两种情况: – 若队列q1中只有一个元素,则让q1中的元素出队列并输出 – 若队列q1中不只一个元素,则队列q1中所有元素出队列,入队列q2,最后一个元素不入队列q2,输出钙元素,然后将队列q2所有元素原创 2017-02-28 11:35:55 · 370 阅读 · 0 评论 -
LeetCode124. Binary Tree Maximum Path Sum
找出二叉树任意一点到另一点的路径,使得和最大. 解题思路:后序遍历,先计算左右子树的值l和r,若l<0或r<0,则不用加上 1 / \ 2 3最大为6 4 / \ 2 6 / \ / \ 1 3 5 7最大原创 2017-03-16 19:54:31 · 383 阅读 · 0 评论