LeetCode-90-Subsets II(回溯)-Medium

题意理解: 同题78,但所给数列中可能存在重复元素; 题目分析: 1. 解题思路同题78; 2. 在同级遍历中,如果发现当前元素在之前已出现,则跳过; 解题代码: public class Solution { private ArrayList> ans...

2016-03-26 22:45:08

阅读数 489

评论数 0

LeetCode-89-Gray Code(模拟/递归)-Medium

题意理解: 1. 列举出n位的所有格雷码; 2. 列举顺序必须按照示例中的顺序; 题目分析: 1. 找规律: 1)1位的格雷码为 0 1 2)n位的格雷码为n-1位格雷码的集合Set1,加上n-1位格雷码的集合最左侧添加一个1 Set2,其中,Set2中的元素为Set1中元...

2016-03-26 12:24:16

阅读数 343

评论数 0

LeetCode-88-Merge Sorted Array(归并)-Easy

题意理解: 合并两个已排序数组; 题目分析: 1. 典型合并算法; 2. 注意当某一数元素在新的排列中已排列完的边界情况处理; 解题代码: public class Solution { public void merge(int[] nums1, int m,...

2016-03-24 09:07:48

阅读数 283

评论数 0

LeetCode-86-Partition List(链表)-Medium

题意理解: 对应给定链表list,和数值val,将先前链表内容重排序,结果使得,小于val的值在左边,大于等于val的值在右边; 题目分析: 使用两组指针,分别标示小于val的链表,和大于等于val的链表,然后将两个链表合并; 解题代码: /** * Definitio...

2016-03-23 09:13:44

阅读数 374

评论数 0

LeetCode-82-Remove Duplicates from Sorted List II(链表)-Medium

题意理解: 删除链表中所有连续重复的项(当前元素和被重复元素一删除); 题目分析: 1. 使用双指针,其中,一个指针标示前面未发生重复的元素位置,一个指针标示当前位置,然后,从左向右处理; 2. 注意第一个指针的状态改变判定; 解题代码: /** * Definiti...

2016-03-22 08:58:42

阅读数 640

评论数 0

LeetCode-83-Remove Duplicates from Sorted List(链表)-Medium

题意理解: 删除链表中的重复项; 题目分析: 使用双指针分别记录当前位置和先前位置,然后比较当前值是否与先前值重复,进而进行删除重复项操作; 解题代码: /** * Definition for singly-linked list. * public class L...

2016-03-21 08:33:33

阅读数 277

评论数 0

LeetCode-80-Remove Duplicates from Sorted Array II(递归)-Medium

题意理解: 题意同26题,只是运行可以有两个相同的元素; 题目分析: 递归处理; 解题代码: public class Solution { private static final int MAX_TIMES=2; private void e...

2016-03-20 15:57:53

阅读数 206

评论数 0

LeetCode-79-Word Search(回溯法)-Medium

题意理解: 求解给定字符串str,是否在字符矩阵array中。要求str中相邻的两个字符,在array中也是相邻字符,并且要求,array中的同一字符,不能使用两次; 题目分析: 1. 使用回溯法; 2. 注意array中同一字符不能使用两次; 解题代码: public...

2016-03-20 15:07:55

阅读数 1409

评论数 0

LeetCode-78-Subsets(回溯法)-Medium

题意理解: 假定给定数组Array,其中Array的容量为N。求解,每次从Array中取出0-N个数的取法; 题目分析: 1. 同77(77题的变种,可以使用77题的核心算法代码); 2. 注意要对给定数组做升序排列; 解题代码: public class Soluti...

2016-03-20 13:01:02

阅读数 435

评论数 0

LeetCode-77-Combinations(回溯法)-Medium

题意理解: 列举从1-n中取出k个数的全部情况(如,[1, 2, 3]中取2个数的结果为[1, 2] [1, 3] [2, 3]); 题目分析: 使用回溯法(深度遍历+剪枝); 解题代码: public class Solution { private Array...

2016-03-20 12:46:52

阅读数 294

评论数 0

LeetCode-75-Sort Colors(双指针)-Medium

题意理解: 将021201混杂排序的数组,最终整理为001122类型的数组结果; 题目分析: 1. 避免使用先计算0、1、2的个数,然后,再分别对数组进行重新赋值的方式进行解题; 2. 使用双指针算法; 解题代码: public class Solution { ...

2016-03-19 22:46:14

阅读数 269

评论数 0

LeetCode-74-Search a 2D Matrix(二分查找)-Medium

题意理解: 查找数值target,是否在给定矩阵matrix中; 题目分析: 1. 二分查找; 2. 先使用二分查找所在行,然后,使用二分查找当前行是否存在target; 3. 注意相邻两项间的无限循环的边界处理(a 解题代码: public class Soluti...

2016-03-19 21:49:00

阅读数 348

评论数 0

LeetCode-73-Set Matrix Zeroes(数组)-Medium

题意理解: 如果矩阵中某个点的值为0,则该点所在的行和列上所有的数均设置为0; 题目分析: 为了降低空间复杂度,需要在当前数组进行设置为0的操作:使用一个list记录所有值为0的位置,然后再对先前的数组进行对应行列设置为0的操作; 解题代码: public class S...

2016-03-19 20:40:14

阅读数 675

评论数 0

LeetCoce-71-Simplify Path(栈)-Medium

题意理解: 简化路径名; 题目分析: 1. 注意 “.” 、".."特殊字符的处理; 2. 运用栈; 解题代码: public class Solution { public String simplifyPath(String path) ...

2016-03-19 14:39:23

阅读数 272

评论数 0

LeetCode-70-Climbing Stairs(动态规划)-Easy

1. 题意理解 每次可以上1个台阶或2个台阶,如果要上n个台阶,有多少种走法? 2. 题目分析: 1. 动态规划; 2. 使用递归方法会超时:climbStairs(n)=climbStairs(n-1)+climbStairs(n-2); 3. 使用非递归方式实现(动规要善用已...

2016-03-19 13:17:05

阅读数 541

评论数 0

LeetCode-69-Sqrt(x)(二分法)-Medium

题意理解: 实现sqrt()函数; 题目分析: 1. 典型的二分法; 2. 注意使用long保留中间值,避免整数相乘出现溢出; 解题代码: public class Solution { private int process(int left, int rig...

2016-03-19 12:40:25

阅读数 337

评论数 0

LeetCode-67-Add Binary(数字/字符串处理)-Easy

题意理解: 同66; 解题思路: 同66; 解题代码: public class Solution { public String addBinary(String a, String b) { int longLen=a.length()>b.length()...

2016-03-19 12:04:18

阅读数 239

评论数 0

LeetCode-66-Plus One(水题/数值计算)-Easy

1. 题意理解 用数组表示一个非负整数,求解该非负整数加一的结果,结果要求同样使用数组表示; 2. 题目分析: 1)注意最高位进位; 2)注意数组的最低位为数值的最高位; 3. 解题代码 public class Solution { public int[] ...

2016-03-18 09:06:48

阅读数 275

评论数 0

LeetCode-64-Minimum Path Sum(动态规划)-Medium

1. 题意理解: 对于MxN矩阵,求解从(0,0)点到(M-1,N-1)点的路径中,每个方格中的数值之和最小的路径。其中,每次只能从左向右,从上向下移动; 2. 题目分析: 1. 典型的动态规划题目; 2. 记录过程中的结果,避免重复计算,否则会超时; 3. 解题代码: ...

2016-03-18 08:41:28

阅读数 375

评论数 0

LeetCode-63-Unique Paths II(动规)-Medium

题目理解: 1. 同63(Unique Paths); 2. 增加限制条件:有障碍的地方不能通过; 题目分析: 添加障碍位置判断处理逻辑; 解题代码: public class Solution { public int uniquePathsWithObsta...

2016-03-16 08:47:23

阅读数 438

评论数 0

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