leecode刷
记录下刷leetcode
JACKPENG.
stay hungry,stay foolish!
展开
-
leetcode:#450. 删除二叉搜索树中的节点
leetcode:#450. 删除二叉搜索树中的节点题目详情采用Java实现class Solution { public TreeNode deleteNode(TreeNode root, int key) { TreeNode deletedNode = root; TreeNode deletedParentNode = null; while (deletedNode != null && deletedNode.val原创 2021-05-26 22:50:32 · 149 阅读 · 0 评论 -
leetcode:#153. 寻找旋转排序数组中的最小值
leetcode:#153. 寻找旋转排序数组中的最小值题目详情采用Java实现。二分法class Solution { public int findMin(int[] nums) { int left = 0; int right = nums.length - 1; while (left < right) { int mid = (left + right) / 2; if (num原创 2021-05-24 16:21:15 · 164 阅读 · 0 评论 -
leetcode:#162. 寻找峰值
leetcode:#162. 寻找峰值题目详情采用Java实现。二分法class Solution { public int findPeakElement(int[] nums) { int left = 0; int right = nums.length - 1; while (left < right) { int mid = (left + right) / 2; if (num原创 2021-05-24 15:48:11 · 133 阅读 · 0 评论 -
leetcode:#148. 排序链表
leetcode:#148. 排序链表题目详情采用Java实现。熟悉合并两个有序链表,断链操作,dummyHeadclass Solution { public ListNode sortList(ListNode head) { ListNode dummyHead = new ListNode(); dummyHead.next = head; int length = calculateListLength(dummyHead);原创 2021-05-19 21:44:29 · 124 阅读 · 0 评论 -
面试题 08.06. 汉诺塔问题
面试题 08.06. 汉诺塔问题题目详情主要考察递归采用Java实现。class Solution { public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) { move(A.size(), A, B, C); } private void move(int count, List<Integer> source, List&原创 2021-04-20 21:52:44 · 114 阅读 · 0 评论 -
面试题 03.06. 动物收容所
面试题 03.06. 动物收容所题目详情采用Java实现。class AnimalShelf { public static final int[] ERROR_RESPONSE = {-1, -1}; private Queue<Integer> cat; private Queue<Integer> dog; public AnimalShelf() { cat = new LinkedList<>();原创 2021-04-18 23:52:04 · 106 阅读 · 0 评论 -
leetcode:#42. 接雨水
leetcode:#42. 接雨水题目详情采用Java实现,构建一个单调递增栈。class Solution { public int trap(int[] height) { Stack<Integer> stack = new Stack<>(); int result = 0; for (int i = 0; i < height.length; i++) { while (!stac原创 2021-04-18 23:16:01 · 97 阅读 · 0 评论 -
leetcode:#59 - I. 滑动窗口的最大值
leetcode:#59 - I. 滑动窗口的最大值题目详情采用Java实现class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if (nums == null || nums.length == 0) { return new int[0]; } int numsLength = nums.length; int[] ma原创 2021-04-18 13:16:06 · 77 阅读 · 0 评论 -
leetcode:#59 - II. 队列的最大值
leetcode:#59 - II. 队列的最大值题目详情采用Java实现class MaxQueue { Queue<Integer> queue; ArrayDeque<Integer> help; // 维护一个增队列保存最大值(不是单调的,有值可能相等) public MaxQueue() { queue = new LinkedList<>(); help = new ArrayDeque<&原创 2021-04-18 12:02:50 · 102 阅读 · 0 评论 -
leetcode:#739 每日温度
leetcode:#739 每日温度题目详情采用Java实现。方法一最容易想到的解题思路:public class Solution { public int[] dailyTemperatures(int[] T) { int[] result = new int[T.length]; for (int i = 0; i < T.length; i++) { for (int j = i + 1; j < T.leng原创 2021-03-28 22:37:58 · 101 阅读 · 0 评论 -
面试题 16.26. 计算器
面试题 16.26. 计算器题目详情方法一维护两个栈,其中一个用来存储操作数,另外一个栈用来存储运算符。遍历字符串,如果是数字,那么直接入操作数栈,如果是操作符,就和运算符栈的栈顶元素比较:当运算符的优先级高于运算符栈的栈顶元素——直接入栈;否则取出运算符栈栈顶元素还有操作符栈栈顶两个元素,进行运算,将运算结果再入运算符栈;继续比较直到当前操作符入栈。public class CalculatorByTwoStack { private static final char ADD = '+原创 2021-03-27 23:32:11 · 140 阅读 · 0 评论 -
leetcode:#206 反转链表
leetcode:206.反转链表题目详情java实现/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val =原创 2021-03-18 23:23:30 · 117 阅读 · 0 评论 -
leetcode: #2 两数相加
leetcode: 两数相加题目描述java实现/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val原创 2021-03-18 22:56:27 · 109 阅读 · 0 评论