力扣
liuze408
这个作者很懒,什么都没留下…
展开
-
236二叉树的最近公共祖先
leetcode236原创 2022-10-16 00:58:37 · 115 阅读 · 0 评论 -
208实现 Trie (前缀树)
leetcode208原创 2022-10-14 23:58:25 · 100 阅读 · 0 评论 -
leetcode:翻转二叉树
力扣226:翻转一棵二叉树。示例:输入:4/ \2 7/ \ / \1 3 6 9输出:4/ \7 2/ \ / \9 6 3 1备注:这个问题是受到 Max Howell 的 原问题 启发的 :谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。Tips:Homebrew是...原创 2022-04-14 17:26:27 · 321 阅读 · 0 评论 -
leetcode:平衡二叉树
力扣110:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:true提示:对于这个问题,是要注意到题目中定义的平衡二叉树...原创 2022-04-14 17:14:06 · 243 阅读 · 0 评论 -
leetcode: 对称二叉树
力扣101:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的:1/ \2 2\ \3 3进阶:你可以运用递归和迭代两种方法解决这个问题吗?/** * Definition for a binary t...原创 2022-04-14 16:53:17 · 92 阅读 · 0 评论 -
leetcode:字符串解码
力扣394:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像3a或2[4]的输入。class Solution { public String deco...原创 2022-04-09 11:40:18 · 542 阅读 · 0 评论 -
leetcode:队列与栈的相互转换
力扣232:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 falseclass MyQueue { private static Stack<Integer&原创 2022-04-09 11:19:12 · 84 阅读 · 0 评论 -
leetcode:链表的中间结点
力扣876:给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(in..原创 2022-04-09 09:34:48 · 82 阅读 · 0 评论 -
leetcode:回文链表
力扣234:/** * 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; this.next = ne原创 2022-04-09 09:18:00 · 127 阅读 · 0 评论 -
leetcode:相交链表
力扣160:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { // public ListNode g.原创 2022-04-08 20:51:41 · 613 阅读 · 0 评论 -
leetcode:删除排序链表中的重复元素Ⅰ、Ⅱ
力扣83:给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int ...原创 2022-04-08 17:15:56 · 668 阅读 · 0 评论 -
leetcode:合并两个有序链表
力扣21:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。package com.lz.fifth;public class MergeTwoSortLists { public static class ListNode{ int val; ListNode next; public ListNode(int val) { this.val=val; next=null; } public ListN..原创 2022-04-08 12:13:23 · 51 阅读 · 0 评论 -
leetcode:找到所有数组中消失的数字
力扣448:给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。package com.lz.forth;import java.util.ArrayList;import java.util.List;public class NumbersDisappeared { public static void main(String[] args)原创 2022-04-07 15:15:45 · 98 阅读 · 0 评论 -
leetcode:移动零
力扣283:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。package com.lz.forth;public class MoveZeroes { public static void main(String[] args) { int[] test={1,2,0,3,5}; moveZeroes(test); moveZeroes3...原创 2022-04-07 11:44:39 · 70 阅读 · 0 评论 -
leetcode:爬楼梯
力扣70:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?package com.lz.forth;import java.util.HashMap;import java.util.Map;public class ClimbingStairs { public static void main(String[] args) { // TODO Auto-generated method stub Sy...原创 2022-04-07 10:40:51 · 223 阅读 · 0 评论 -
leetcode:优势洗牌
力扣870:给定两个大小相等的数组A和B,A 相对于 B 的优势可以用满足A[i] > B[i]的索引 i的数目来描述。返回A的任意排列,使其相对于 B的优势最大化。package com.lz.third;import java.util.Arrays;import java.util.Deque;import java.util.HashMap;import java.util.LinkedList;import java.util.Map;publ...原创 2022-04-07 09:41:42 · 181 阅读 · 0 评论 -
leetcode:Dota2参议院
Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项: 禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。 宣布胜利: 如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。 给定一个字符串代表每个参议员的阵营。字母 “原创 2022-04-06 21:03:40 · 91 阅读 · 0 评论 -
leetcode:打家劫舍Ⅰ、Ⅱ、Ⅲ
力扣198:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。package com.lz.third;public class Rob { public static void main(String[] args) { // TODO原创 2022-04-06 17:37:32 · 87 阅读 · 0 评论 -
leetcode:井字游戏
力扣794:用字符串数组作为井字游戏的游戏板 board,判断该游戏板有没有可能最终形成 游戏板是一个 3 x 3 数组,由字符 " ","X" 和 "O" 组成。字符 " " 代表一个空位。 两个玩家轮流将字符放入空位,一个玩家执X棋,另一个玩家执O棋 “X” 和 “O” 只允许放置在空位中,不允许对已放有字符的位置进行填充。 当有 3 个相同(且非空)的字符填充任何行、列或对角线时,游戏结束,board生成 public static boolean validBoard(S原创 2022-03-30 20:01:04 · 3610 阅读 · 0 评论 -
leetcode:香槟酒
力扣799:我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟。 从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都会立刻等流量的流向左右两侧的玻璃杯。当左右两边的杯子也满了,就会等流量的流向它们左右两边的杯子,依次类推。 (当最底层的玻璃杯满了,香槟会流到地板上) 例如,在倾倒一杯香槟后,最顶层的玻璃杯满了。倾倒了两杯香槟后,第二层的两个玻璃杯各自盛放一半的香槟。在倒三杯香槟后,第二层的香槟满了 -原创 2022-03-30 18:19:05 · 60 阅读 · 0 评论 -
leetcode:预测赢家
力扣486:给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。 给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。 两个值的时候必然是取较大的,三个值,取一个能使自己分数和最大的,后手必然留较小的给先手,因此先手选一个值加上该较小值最大化原创 2022-03-30 11:21:59 · 3971 阅读 · 0 评论 -
leetcode:省份数量
有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。 给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。 返回矩阵中省份的数量。package com.lz原创 2022-03-28 20:01:48 · 683 阅读 · 0 评论 -
leetcode:三角形的最大周长
力扣976:给定由一些正数(代表长度)组成的数组 A ,返回由其中三个长度组成的、面积不为零的三角形的最大周长。 如果不能形成任何面积不为零的三角形,返回 0 。 package com.lz.third;import java.util.Arrays;public class Triangles { public static void main(String[] args) { System.out.println(largestPerimeter(new int[] {原创 2022-03-27 17:41:07 · 203 阅读 · 0 评论 -
leetcode:柠檬水找零
力扣860:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。必须给每个顾客正确找零 注意,一开始你手头没有任何零钱。 如果你能给每位顾客正确找零,返回 true ,否则返回 false 。package com.lz.third;public class lemonChange { public static void main(String[] args) {原创 2022-03-27 17:17:49 · 83 阅读 · 0 评论 -
leetcode:二叉树遍历(morris)
package com.lz.second;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import com.lz.first.ReverseList.ListNode;public class BinaryTree2 { public static class TreeNode{ int val; TreeNode left; TreeNode right; int d.原创 2022-03-27 16:34:00 · 1044 阅读 · 0 评论 -
leetcode:二叉树遍历(迭代)
package com.lz.second;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.Stack;import com.lz.second.BinaryTree.TreeNode;public class BinaryTree1 { public.原创 2022-03-27 15:23:45 · 54 阅读 · 0 评论 -
leetcode:二叉树遍历(递归)
package com.lz.second;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class BinaryTree { public static class TreeNode{ int val; TreeNode left; TreeNode right; int deep; TreeNode(int val,TreeNode left,TreeNo.原创 2022-03-27 12:17:24 · 887 阅读 · 0 评论 -
leetcode:二叉树深度
力扣111:给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 package com.lz.second;import java.util.LinkedList;import java.util.Queue;public class TreeDeep { public static class TreeNode{ int val; TreeNode left; TreeNode right; int deep; Tre原创 2022-03-27 11:06:44 · 64 阅读 · 0 评论 -
leetcode:合并两个有序数组
力扣88:package com.lz;import java.util.Arrays;public class MergeSortArray { public static void main(String[] args) { // TODO Auto-generated method stub int[] nums1=new int[] {1,3,5,7,9,0,0,0,0}; int[] nums2=new int[] {2,4,6,8}; //System.out.原创 2022-03-26 21:00:22 · 363 阅读 · 0 评论 -
leetcode:环形链表Ⅰ、Ⅱ
给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达该节点,则链表中存在环 如果链表中存在环,则返回 true 。 否则,返回 false 。 package com.lz;import java.util.HashSet;import java.util.Set;public class LinkCycle { public static class ListNode{ int val; ListNode next;原创 2022-03-26 20:04:02 · 91 阅读 · 0 评论 -
leetcode:斐波那契数列
求取斐波那契数列第N位的值。 斐波那契数列:每一位的值等于他前两位数字之和。前两位固定 0,1,1,2,3,5,8。。。package com.lz;public class Fib { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(calculate(10)); System.out.println(calculate2(10));原创 2022-03-26 17:27:18 · 203 阅读 · 0 评论 -
leetcode:两数之和
力扣1:给定一个升序排列的整数数组 numbers ,从数组中找出两个数满足相加之和等于目标数 target 。 假设每个输入只对应唯一的答案,而且不可以重复使用相同的元素。 返回两数的下标值,以数组形式返回package com.lz;import java.util.Arrays;import java.util.HashMap;import java.util.Map;public class sum { public static void main(String原创 2022-03-26 17:05:48 · 134 阅读 · 2 评论 -
leetcode:反转链表Ⅰ、Ⅱ
力扣206package com.lz;public class ReverseList { public static class ListNode{ int val; ListNode next; public ListNode(int val, ListNode next) { this.val = val; this.next = next; } } //迭代 public static ListNode iterate(Lis原创 2022-03-26 13:31:03 · 82 阅读 · 0 评论 -
leetcode:二分查找
(704)二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。class Solution { public int search(int[] nums, int target) { if(target<nums[0]||target>nums[nums.length-1]){ return -1; .原创 2022-03-03 17:24:13 · 74 阅读 · 0 评论