LeetCode刷题--Java
共商共建共享
ShazamChen
这个作者很懒,什么都没留下…
展开
-
LeetCode--105. 从前序与中序遍历序列构造二叉树
在理解前序和中序遍历的特点和相互之间的关联后,这道题的思路并不难实现。public static TreeNode buildTree(int[] preorder, int[] inorder) { //前期的剪枝 if (preorder == null) { return null; } int length = preorder.length; if (length == 1) { .原创 2021-06-02 21:39:10 · 62 阅读 · 0 评论 -
LeetCode--90. 子集 II
题目给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。勉强说得过去原创 2021-05-17 21:10:15 · 80 阅读 · 0 评论 -
LeetCode--88. 合并两个有序数组
题目:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。...原创 2021-05-15 21:06:13 · 71 阅读 · 0 评论 -
LeetCode--79. 单词搜索
***题目:***给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。思路简单,上下左右进行尝试,但是耗时较高,可以优化。public static void main(String[] args) { System.out.println(ex原创 2021-05-14 21:35:24 · 72 阅读 · 0 评论 -
LeetCode--78. 子集
该思路易于理解,但时间复杂度不行,后续可以利用回溯算法优化。public static void main(String[] args) { //[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] System.out.println(subsets(new int[]{1, 2, 3})); //[[],[0]] System.out.println(subsets(new int[]{0})); .原创 2021-05-14 21:25:05 · 88 阅读 · 0 评论 -
LeetCode--74. 搜索二维矩阵
剪枝可以对特殊案例进行处理public class Q74_Search_a_2D_Matrix { public static void main(String[] args) { System.out.println(searchMatrix(new int[][]{{1, 3, 5, 7}, {10, 11, 16, 20}, {23, 30, 34, 60}}, 3)); System.out.println(searchMatrix(new int[][.原创 2021-05-12 21:23:03 · 77 阅读 · 0 评论 -
LeetCode--66. 加一
没太大难度,仅需注意9+1后的进位情况public class Q66_Plus_One { public static void main(String[] args) { System.out.println(Arrays.toString(plusOne(new int[]{1, 2, 3}))); System.out.println(Arrays.toString(plusOne(new int[]{4, 3, 2, 1}))); Sys.原创 2021-05-12 21:20:03 · 99 阅读 · 0 评论 -
LeetCode--64. 最小路径和
和63题一样,都是从第62题变化而来,难度不大,记住每一个点的最短路径为“到该点的最小数字和”+“该点的数字”即可。public class Q64_Minimum_Path_Sum { public static void main(String[] args) { System.out.println(minPathSum(new int[][]{{1, 3, 1}, {1, 5, 1}, {4, 2, 1}})); //7 System.out.prin.原创 2021-05-11 21:58:05 · 91 阅读 · 1 评论 -
LeetCode--63. 不同路径 II
这一题由62题变化而来,如果理解了第62题,可以说这一题毫无难度,只需将数组中阻塞的点可通行的路线数量设为1即可。public class Q63_Unique_Paths_II { public static void main(String[] args) { System.out.println(uniquePathsWithObstacles(new int[][]{{0, 0, 0}, {0, 1, 0}, {0, 0, 0}})); System.o..原创 2021-05-11 21:48:58 · 103 阅读 · 1 评论