03 2021 档案
摘要:题目来源 LeetCode_78 题目描述 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入: nums = [1,2,3] 输出: [[],[1],[2],[1,2],[3],[
阅读全文
摘要:136. 只出现一次的数字 LeetCode_136 题目描述 相似题目:剑指 Offer 56 - I. 数组中数字出现的次数 代码实现 class Solution { public int singleNumber(int[] nums) { int n = nums.length; int
阅读全文
摘要:468. 验证IP地址 LeetCode_468 题目描述 方法一:正则表达式 import java.util.regex.*; class Solution { //Ipv4的正则匹配表达式 String regIpv4 = "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-
阅读全文
摘要:题目来源 LeetCode_153 相似题目 33. 搜索旋转排序数组 153. 寻找旋转排序数组中的最小值 154. 寻找旋转排序数组中的最小值 II 题目描述 题解分析 解法一:二分法-思路一 这道题高效的解法就是二分法,利用旋转数组部分有序的性质找到最小值。 首先考虑一种情况:数组未旋转或者旋
阅读全文
摘要:题目来源 LeetCode_34 题目描述 题解分析 解法一:二分法 这里与传统的二分法不同,这里需要找到指定元素的左右边界,所以我们无法直接套用二分法的模板。 其实,我们可以分别考虑这两种情况,与普通的二分法不同,当需要找左边界时,当我们找到target == nums[mid],我们不是直接返回
阅读全文
摘要:48. 旋转图像 LeetCode_48 题目描述 方法一:使用辅助数组 class Solution { public void rotate(int[][] matrix) { //第i,j的元素翻转后出现在倒数第i列的第j个元素 int m = matrix.length; int n = m
阅读全文
摘要:143. 重排链表 LeetCode_143 题目描述 代码实现 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * List
阅读全文
摘要:143. 重排链表 LeetCode_143 题目描述 题解分析 本题的解题核心是需要找到原链表的中间节点,然后将中间节点之后的链表进行反转。 如何找到中间节点呢?这里可以使用快慢指针的思想,通过设置slow和fast指针,当fast走到尾结点时,slow指针敲好指向中间节点。 这里的反转链表操作比
阅读全文
摘要:19. 删除链表的倒数第 N 个结点 LeetCode_19 题目描述 代码实现 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {
阅读全文
摘要:0左边必有1的二进制字符串数量 0左边必有1的二进制字符串数量 题目描述 题解思路 代码实现 package com.walegarrett.interview; import java.util.Scanner; /** * @Author WaleGarrett * @Date 2021/3/2
阅读全文
摘要:739. 每日温度 LeetCode_739 相似题目:单调栈结构(进阶) 题目描述 代码实现 class Solution { public int[] dailyTemperatures(int[] T) { int n = T.length; Stack<Integer> sta = new
阅读全文
摘要:739. 每日温度 LeetCode_739 相似题目:单调栈结构(进阶) 题目描述 代码实现 class Solution { public int[] dailyTemperatures(int[] T) { int n = T.length; Stack<Integer> sta = new
阅读全文
摘要:单调栈结构(进阶) 单调栈结构(进阶) 题目描述 方法一:暴力法 @Test public void main1(){ Scanner cin = new Scanner(System.in); int n = cin.nextInt(); int[] nums = new int[n]; for(
阅读全文
摘要:101. 对称二叉树 LeetCode_101 题目描述 方法一:递归法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right;
阅读全文
摘要:题目来源 LeetCode_226 题目描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入: root = [4,2,7,1,3,6,9] 输出: [4,7,2,9,6,3,1] 示例 2: 输入: root = [2,1,3] 输出: [2,3,1] 示例
阅读全文
摘要:98. 验证二叉搜索树 LeetCode_98 题目描述 题解分析 为每棵树都维护一个最小值和最大值,要求树的所有节点都符合边界值的要求。 需要注意的一点就是需要使用long类型的最小值和最大值。 代码实现 /** * Definition for a binary tree node. * pub
阅读全文
摘要:104. 二叉树的最大深度 LeetCode_104 题目描述 代码实现 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right;
阅读全文
摘要:题目来源 LeetCode_234_回文链表 题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入: head = [1,2,2,1] 输出: true 示例 2: 输入: head = [1,2] 输出:
阅读全文
摘要:169. 多数元素 LeetCode_169 题目描述 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2
阅读全文
摘要:56. 合并区间 LeetCode_56 题目描述 题解分析 本题的解题思路就是使用贪心法,先将数组按照每一维的第一个数进行排序。 题目的一个难点是对二维数组进行排序,这需要使用Comparator接口。 答案使用list来保存,最后需要返回一个Array数组。 代码实现 class Solutio
阅读全文
摘要:23. 合并K个升序链表 23. 合并K个升序链表 题目描述 题解分析 题目需要考察的就是两个有序链表的合并, 这题和另一题类似:https://www.cnblogs.com/GarrettWale/p/14514211.html 对于多个链表的合并,可以借鉴归并排序的思想,递归合并多个小的链表。
阅读全文
摘要:25. K 个一组翻转链表 25. K 个一组翻转链表 题目描述 题解分析 这题的主要解决思路就是链表的翻转,关键是要找到每次翻转的头结点和尾结点。 外层是一个while(true)循环,内存找到本次需要翻转的k个结点的左右边界。 代码实现 解法一:迭代法 /** * Definition for
阅读全文
摘要:155. 最小栈 LeetCode_155 题目描述 相似题目 剑指 Offer 30. 包含min函数的栈 面试题59 - II. 队列的最大值 155. 最小栈 代码实现 class MinStack { /** initialize your data structure here. */ S
阅读全文
摘要:2. 两数相加 LeetCode_2 类似题目:415. 字符串相加 题目描述 代码实现 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode
阅读全文
摘要:240. 搜索二维矩阵 II LeetCode_240 题目描述 代码实现 class Solution { public boolean searchMatrix(int[][] matrix, int target) { if(matrix == null || matrix.length ==
阅读全文
摘要:83. 删除排序链表中的重复元素 LeetCode_83 题目描述 相似题目 83. 删除排序链表中的重复元素 + 链表 + 判重 82. 删除排序链表中的重复元素 II + 链表 + 判重 题解分析 解法一:复杂解法 /** * Definition for singly-linked list.
阅读全文
摘要:105. 从前序与中序遍历序列构造二叉树 LeetCode_105 题目描述 解法描述 题目主要考察的是我们对二叉树三种遍历的熟悉程度。 构建二叉树的时候首先可以根据前序遍历找出根节点,接着根据根节点在中序遍历找到划分左右子树的分界点。 然后新建一个树结点,递归构建其左右子树。 代码描述 /** *
阅读全文
摘要:704. 二分查找 LeetCode_704 题目描述 代码实现 class Solution { public int search(int[] nums, int target) { int low = 0, high = nums.length - 1; while(low <= high){
阅读全文
摘要: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循环中还需要将下一层
阅读全文
摘要:236. 二叉树的最近公共祖先 题目描述 相似题目:https://www.cnblogs.com/GarrettWale/p/14406641.html 题解分析 此题是利用二叉树的后序遍历来求解最近公共祖先。 递归的出口是遍历到叶子结点或者当前结点(root)等于待搜索的结点(p或者q),此时需
阅读全文
摘要:141. 环形链表 LeetCode_141 题目描述 实现思路 使用快慢指针的方法可以判断是否有环。 需要注意的是:在起始的时候不能把快慢指针都指向head,否则永远不会进入循环!!!! 代码实现 /** * Definition for singly-linked list. * class L
阅读全文
摘要:148. 排序链表 LeetCode_148 题目描述 题解分析 可以利用归并排序的思想对链表进行排序 要利用归并排序,首先就要得到中间结点,这个可以利用快慢指针来实现。 剩下的就是链表合并的问题,具体可以参考:https://www.cnblogs.com/GarrettWale/p/145142
阅读全文
摘要:21. 合并两个有序链表 LeetCode_21 题目描述 解法一:迭代法 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} *
阅读全文
摘要:189. 旋转数组 LeetCode_189 题目描述 方法一:使用暴力法 class Solution { public void rotate(int[] nums, int k) { int n = nums.length; int[] second = new int[n]; for(int
阅读全文
摘要:Spark的五种JOIN策略解析 JOIN操作是非常常见的数据处理操作,Spark作为一个统一的大数据处理引擎,提供了非常丰富的JOIN场景。本文分享将介绍Spark所提供的5种JOIN策略,希望对你有所帮助。本文主要包括以下内容: 影响JOIN操作的因素 Spark中JOIN执行的5种策略 Spa
阅读全文
摘要:什么是零拷贝 WIKI中对其有如下定义: "Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to anot
阅读全文
摘要:300. 最长递增子序列 题目描述 方法一:动态规划 与53. 最大子数组和 + 动态规划 + 线段树 问题类似,本题属于子序列问题的一种。 问题的关键是定义好dp动态方程,类似于LeetCode-53题目,我们假设dp[i]表示i结尾的递增子序列的长度。 对于状态转移方程,我们可以这样考虑:因为是
阅读全文
摘要:596. 超过5名学生的课 LeetCode_MySql_596 题目描述 方法一:使用group by + where + 子查询 # Write your MySQL query statement below select c1.class from ( select class, count
阅读全文
摘要:958. 二叉树的完全性检验 LeetCode_958 题目描述 题解分析 题目的关键是判断每一层的结点数是否等于2^i。 此外,还有一个比较关键的因素是判断最后一层的结点是否是偏左的。 以上这两点都可以通过给每个结点设置一个序号,也就是按照二叉树的顺序存储的方式分配序号,如果最后一个结点的序号和所
阅读全文
摘要:explain explain模拟优化器执行SQL语句,在5.6以及以后的版本中,除过select,其他比如insert,update和delete均可以使用explain查看执行计划,从而知道mysql是如何处理sql语句,分析查询语句或者表结构的性能瓶颈。 作用 1、表的读取顺序 2、数据读
阅读全文
摘要:题目来源 LeetCode_42 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 题目详情 示例 1: 输入: height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 解释: 上面是由数组 [0,1,0,2,1,0,1,3
阅读全文
摘要:题目来源 LeetCode_53 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组
阅读全文
摘要:103. 二叉树的锯齿形层序遍历 LeetCode_103 相似题型:剑指 Offer 32 - III. 从上到下打印二叉树 III 题目描述 LinkedList(Deque的一个实现类)的用法 增加: add(E e):在链表后添加一个元素; 通用方法 addFirst(E e):在链表头部插
阅读全文
摘要:面试官: Java并发这块了解的怎么样?说说你对volatile关键字的理解 就我理解的而言,被volatile修饰的共享变量,就具有了以下两点特性: 1.保证了不同线程对该变量操作的内存可见性; 2.禁止指令重排序 面试官: 能不能详细说下什么是内存可见性,什么又是重排序呢? 这个聊起来可就多了,
阅读全文
摘要:题目来源 LeetCode_46 题目描述 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入: nums = [1,2,3] 输出: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
阅读全文
摘要:232. 用栈实现队列 LeetCode_232 题目描述 方法一:在push时将原有栈的元素全部出栈然后再将当前元如入栈,最后再将第二个栈的元素入第一个栈 class MyQueue{ int num; Deque<Integer> sta1, sta2;//使用双端队列来模拟栈 /** Init
阅读全文
摘要:54. 螺旋矩阵 LeetCode_54 相似题目:剑指 Offer 29. 顺时针打印矩阵 题目描述 代码实现 class Solution { public List<Integer> spiralOrder(int[][] matrix) { int m = matrix.length;//行
阅读全文
摘要:题目来源 LeetCode_69 题目详情 题解分析 方法一:使用sqrt class Solution { public int mySqrt(int x) { return (int)Math.sqrt((double)x); } } 方法二:袖珍计算器 class Solution { pub
阅读全文
摘要:197. 上升的温度 LeetCode_MySql_197 题目描述 代码实现 # Write your MySQL query statement below select we1.id Id from Weather we1, Weather we2 where datediff(we1.rec
阅读全文
摘要:415. 字符串相加 LeetCode_415 题目详情 方法一:使用暴力法 class Solution { public String addStrings(String num1, String num2) { int len1 = num1.length(); int len2 = num2
阅读全文
摘要:196. 删除重复的电子邮箱 LeetCode_MySql_196 题目描述 实现代码 # Write your MySQL query statement below # 需要找到两张表中,其他记录中具有相同邮件地址但是id更大的记录,将其删除即可 delete p1 from Person p1
阅读全文
摘要:145. 二叉树的后序遍历 LeetCode_145 题目描述 递归解法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right;
阅读全文
摘要:94. 二叉树的中序遍历 LeetCode_94 题目描述 解法一:递归解法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right
阅读全文
摘要:160. 相交链表 LeetCode_160 题目描述 题解分析 本题使用的方法是双指针法,题目和环形链表相似,都是利用链表的特性来求解。 当遍历链表a到达尾部时,再指向链表b的头部;当遍历链表b到末尾时,再指向链表a的头部。 再次相遇时便是相交结点。 java代码 /** * Definition
阅读全文
摘要:142. 环形链表 II LeetCode_142 题目描述 题解分析 判断链表是否存在环 对于这个问题我们可以采用“快慢指针”的方法。就是有两个指针fast和slow,开始的时候两个指针都指向链表头head,然后在每一步操作中slow向前走一步即:slow = slow->next,而fast每一
阅读全文
摘要:1.总述 java命令用来启动一个java应用。有以下两种用法: java [options] mainClass [args...] java [options] -jar jarfile [args...] 第一种从指定的java类开始启动,第二种从可运行的jar开始启动。java应用启动的过程
阅读全文
摘要:处理海量数据问题的四板斧 分治 基本上处理海量数据的问题,分治思想都是能够解决的,只不过一般情况下不会是最优方案,但可以作为一个baseline,可以逐渐优化子问题来达到一个较优解。传统的归并排序就是分治思想,涉及到大量无法加载到内存的文件、排序等问题都可以用这个方法解决。 适用场景:数据量大无法加
阅读全文
摘要:11. 设计模式 11.0 设计原则 单一职责原则 不要存在多于一个导致类变更的原因。 总结:一个类只负责一项职责。 里氏替换原则 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 子类中可以增加自己特有的方法。 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入
阅读全文
摘要:185. 部门工资前三高的所有员工 LeetCode_MySql_185 题目描述 方法一:使用join on # Write your MySQL query statement below select d.Name as 'Department', e1.Name as 'Employee',
阅读全文
摘要:5. 最长回文子串 LeetCode_5 题目详情 方法一:暴力法(超时) class Solution { public String longestPalindrome(String s) { int len = s.length(); int maxLen = 0; String result
阅读全文
摘要:184. 部门工资最高的员工 LeetCode_MySql_184 题目描述 题解分析 1.首先需要使用group by找出工资最高的值 2. 然后考虑到最高工资的可能有多位,所以使用in语句找到所有符合条件的员工 3. 最外层使用连接连表查询员工所在的部门名字。 代码实现 # Write your
阅读全文
摘要:183. 从不订购的客户 LeetCode_MySql_183 题目描述 代码实现 # Write your MySQL query statement below select Name as 'Customers' from Customers where Customers.Id not in
阅读全文
摘要:182. 查找重复的电子邮箱 LeetCode_MySql_182 题目描述 方法一:使用笛卡尔积 # Write your MySQL query statement below select distinct t1.Email from Person t1, Person t2 where t1
阅读全文
摘要:MySQL中的存储引擎 一、存储引擎 1、存储引擎其实就是对于数据库文件的一种存取机制,如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。 2、MySQL中的数据用各种不同的技术存储在文件(或内存)中,这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且
阅读全文
摘要:181. 超过经理收入的员工 LeetCode_MySql_181 题目描述 方法一:笛卡尔积 # Write your MySQL query statement below select e1.Name as 'Employee' from Employee e1, Employee e2 wh
阅读全文
摘要:180. 连续出现的数字 LeetCode_MySql_180 题目描述 代码实现 # Write your MySQL query statement below select distinct t1.num as ConsecutiveNums from Logs t1, Logs t2, Lo
阅读全文
摘要:178. 分数排名 LeetCode_MySql_178 题目描述 题解分析 排名函数 DENSE_RANK()。如果使用 DENSE_RANK() 进行排名会得到:1,1,2,3,4。 RANK()。如果使用 RANK() 进行排名会得到:1,1,3,4,5。 ROW_NUMBER()。如果使用
阅读全文
摘要:MySql_176. 第二高的薪水 LeetCode_MySql_176 题目描述 题解分析 代码实现 # Write your MySQL query statement below select( select distinct Salary from Employee order by Sal
阅读全文
摘要:653. 两数之和 IV - 输入 BST 题目描述 题解分析 最简单的方法就是遍历整棵树,找出所有可能的组合,判断是否存在和为 kk 的一对节点。现在在此基础上做一些改进。 如果存在两个元素之和为 k,即 x+y=k,并且已知 x 是树上一个节点的值,则只需判断树上是否存在一个值为 y 的节点,使
阅读全文
摘要:1. JMM的介绍 在上一篇文章中总结了线程的状态转换和一些基本操作,对多线程已经有一点基本的认识了,如果多线程编程只有这么简单,那我们就不必费劲周折的去学习它了。在多线程中稍微不注意就会出现线程安全问题,那么什么是线程安全问题?我的认识是,在多线程下代码执行的结果与预期正确的结果不一致,该代码就是
阅读全文
摘要:167. 两数之和 II - 输入有序数组 LeetCode_167 题目描述 方法一:暴力法(使用哈希表) class Solution { public int[] twoSum(int[] numbers, int target) { int len = numbers.length; Has
阅读全文
摘要:1. 两数之和 LeetCode_1 题目描述 方法一:暴力法 package com.walegarrett.interview; /** * @Author WaleGarrett * @Date 2021/3/1 12:21 */ /** * 题目描述:给定一个整数数组 nums 和一个整数目
阅读全文
摘要:381. O(1) 时间插入、删除和获取随机元素 - 允许重复 LeetCode_381 题目详情 题解分析 代码实现 package com.walegarrett.interview; import java.util.*; /** * @Author WaleGarrett * @Date 2
阅读全文