摘要:
72. 编辑距离 LeetCode_72 题目描述 题解分析 代码实现 思路一 class Solution { public int minDistance(String word1, String word2) { int m = word1.length(); int n = word2.le 阅读全文
摘要:
题目来源 LeetCode_124 题目描述 题解描述 解法一:树形DP 解法二:后序遍历 我们在这里需要仔细考虑一下,怎样的路径是合法的?换句话说,树上的路径可以怎样构成? 按照题意分析,我们的单边路径一定是合法的,而对于当前节点而言,左半边路径加上当前节点再加上右单边节点也是合法的。 我们可以定 阅读全文
摘要:
题目来源 LeetCode_4 题目描述 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。 示例 1: 输入: nums1 = [1,3], nums2 = [2] 输 阅读全文
摘要:
144. 二叉树的前序遍历 LeetCode_144 题目描述 方法一:递归法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode righ 阅读全文
摘要:
数据仓库理论(一) 一 数据仓库的概念 1 什么是数据仓库 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成 阅读全文
摘要:
543. 二叉树的直径 LeetCode_543 题目描述 代码实现 代码撰写的时候需要注意的是left+right+1会多算一个结点。 在返回最终答案的时候需要减去一个结点(树的高度决定的)。 /** * Definition for a binary tree node. * public cl 阅读全文
摘要:
200. 岛屿数量 LeetCode_200 题目描述 代码实现 class Solution { int[][] direction = {{-1, 0}, {1, 0}, {0, 1}, {0, -1}}; int m, n; public int numIslands(char[][] gri 阅读全文
摘要:
92. 反转链表 II LeetCode_92 题目描述 解法一:穿针引线法-模拟的思路 首先确定一个左边界start表示翻转开始的起始点。 在左右边界之间不断修改next指针指向下一个结点。 当遍历到右边界的下一个字符时开始翻转这一整段的链表。 class Solution { public Li 阅读全文
摘要:
113. 路径总和 II LeetCode_113 题目描述 解法一:低效率的递归回溯 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode 阅读全文
摘要:
718. 最长重复子数组 LeetCode_718 题目描述 相似题目 1143. 最长公共子序列 解法一:使用动态规划 首先需要说明的是,这题和最长公共子序列是不同的,子序列并没有要求说是连续的,而连续数组则要求是连续的。 首先定义dp[i][j]表示为A[i:]和B[j:]的最长公共前缀。 dp 阅读全文
摘要:
62. 不同路径 LeetCode_62 题目描述 题解分析 题目使用动态规划来实现。 在二层循环之前,需要对初始值(行为0或者列为0)进行初始化,这些情况都只有一种走法。 在循环体内,由于只能向下和向右走,所有dp[i][j] = dp[i-1][j] + dp[i][j-1]。 代码实现 cla 阅读全文
摘要:
64. 最小路径和 LeetCode_64 题目描述 代码实现 class Solution { public int minPathSum(int[][] grid) { int m = grid.length; int n = grid[0].length; int[][] dp = new i 阅读全文
摘要:
1143. 最长公共子序列 LeetCode_1143 题目描述 相似题目 718. 最长重复子数组 题解分析 与最长递增子序列问题类似,本题也属于子序列的问题之一。前面也提到了,子序列的dp方程定义有一个通用的套路,那就是dp[i]通常表示为以i结尾的子序列的最值。 在本题中,我们定义dp[i][ 阅读全文
摘要:
110. 平衡二叉树 LeetCode_110 题目描述 题解分析 本题可以和求树的高度的实现联系起来。 只有左右子树的高度都求出来才能知道是否是平衡的。 本题的一个难点是如果有一个结点不是平衡的怎么办?解决方案是返回一个负数。以后只要遇到负数就返回负数。 答案就是判断返回的数是否为负数,如果为负数 阅读全文
摘要:
88. 合并两个有序数组 LeetCode_88 题目描述 方法一:暴力法 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i=0, j=0; j<n;){ if(i >= m 阅读全文
摘要:
199. 二叉树的右视图 LeetCode_199 题目描述 方法一:使用宽度优先搜索(类似于层次遍历,每次记录最后一个元素) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNo 阅读全文
摘要:
字节跳动2018校招大数据方向(第一批)编程题1 题目描述 P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内) 阅读全文
摘要:
字节跳动2018校招大数据方向(第一批)编程题2 题目描述 给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中经过如下计算的值最大的一个: 区间中的最小数 * 区间所有数的和最后程序输出经过计算后的最大值即可,不需要输出具体的区间。如给定序列 [6 2 1]则根据上述公式, 可得到所有 阅读全文
摘要:
20. 有效的括号 LeetCode_20 题目描述 相似题目 | 题号 | 题目 | 备注 | | | | | | 20 | 有效的括号 | 栈 | | 22 | 括号生成 | dfs | | 5 | 最长回文子串 | dp | | 647 | 回文子串 | dp | | 32 | 最长有效括号 阅读全文
摘要:
102. 二叉树的层序遍历 LeetCode_102 题目描述 题解分析 二叉树的层序遍历需要使用队列来实现,在java中,可以使用LinkedList来实现队列。 因为需要按层输出二叉树的每一层结点,我们可以每次都将队列中的元素全部出列,这些出列的元素就是一层的元素。 在for循环中还需要将下一层 阅读全文