摘要:
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){ 阅读全文