力扣热题100
小型骷髅
努力敲代码
展开
-
一个机器人位于一个 m x n 网格的左上角 。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?【LeetCodeHot100】
一个机器人位于一个 m x n 网格的左上角 。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?原创 2022-06-24 10:59:43 · 4197 阅读 · 0 评论 -
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?【LeetCode Hot 100】
力扣热题100之第70题:先贴代码:class Solution { public int climbStairs(int n) { //爬完n阶所需的方法:f(n) = f(n-1) + f(n-2) int a = 0; //定义a为n-2阶需要的方法数 int b = 0; //定义b为n-1阶需要的方法数 int method = 1; //method为n阶需要的方法数 //i为当前的阶数,从第原创 2022-03-04 18:04:51 · 8499 阅读 · 0 评论 -
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。【LeetCode Hot 100】
力扣热题100之第104题:class Solution { public int maxDepth(TreeNode root) { //当root为null时,二叉树长度为0 if(root == null){ return 0; } //当root左右子树都不为null,整棵树最大长度为左右子树长度的最大值+1; return 1 + Math.max(maxDepth(root.原创 2022-03-07 20:20:01 · 741 阅读 · 0 评论 -
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。【LeetCode Hot 100】
力扣热题100之第一题:方法一:暴力枚举法class Solution { public int[] twoSum(int[] nums, int target) { int n = nums.length; for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { if (nums[i] + nums[j] == tar原创 2022-03-04 15:18:15 · 3812 阅读 · 1 评论 -
给你一个二叉树的根节点 root , 检查它是否轴对称。【LeetCode Hot 100】
力扣热题100之第101题:方法一、递归: class Solution { public boolean isSymmetric(TreeNode root) { //编写函数判断根的左树和右树是否对称 return func(root.left,root.right); } public boolean func(TreeNode leftTree,TreeNode rightTree){ //当左树为空,右树不为空原创 2022-03-07 20:10:42 · 5397 阅读 · 0 评论 -
给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。【LeetCode Hot 100】
力扣热题100之第20题:先贴代码:class Solution { public boolean isValid(String s) { //新建栈,用以存储左括号 Stack<Character> stack = new Stack<>(); //for循环遍历字符串s,遇到左括号入栈,遇到右括号出栈,判断两个括号是否匹配 for(int i = 0;i < s.length();i++).原创 2022-03-04 16:30:56 · 4689 阅读 · 1 评论 -
给定一个二叉树的根节点 root ,返回它的 中序 遍历。【LeetCode Hot 100】
力扣热题100之第94题方法一、递归法:首先我们得知道什么是二叉树的中序遍历:左子树节点 - 根节点 - 右子树节点。就是遇到节点时,优先遍历该节点的左子树,等遍历完了再到根节点,最后是右子树。如下图所示:那么这棵二叉树中序遍历的结果就为:4 2 8 6 5 7 1 3;通过这个思路,我们就可以明白,当我们需要中序遍历一颗整树的时候,就得先遍历它的左子树,而遍历它的左子树,需要先遍历它的左子树的左子树,等等。所以我们就可以用递归来解决这个问题。具体代码为:class Solut原创 2022-03-07 19:01:48 · 9679 阅读 · 1 评论 -
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。【LeetCode Hot 100】
力扣热题100之第136题:先贴代码:class Solution { public int singleNumber(int[] nums) { //异或 int ans = 0; for(int i = 0; i < nums.length;i++){ ans = ans ^ nums[i]; } return ans; }}解题思路:这一题需要我们用到原创 2022-03-07 21:46:26 · 7357 阅读 · 3 评论 -
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。【LeetCode Hot 100】
力扣热题100之第53题:先贴代码:class Solution { public int maxSubArray(int[] nums) { //定义一个cur,存储子数组的和 int cur = 0; //定义maxsum,为连续子数组的最大和 int maxsum = nums[0]; //for循环遍历数组,cur为从0开始的子数组和,若遍历到x时,之前子数组的和小于x的值 //则抛原创 2022-03-04 17:23:08 · 4821 阅读 · 0 评论 -
给定一个数组,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择某一天买入这只股票,并选择在未来的一个不同的日子卖出该股票。【LeetCode Hot 100】
力扣热题100之第121题:先贴代码:class Solution { public int maxProfit(int[] prices) { /** * 遍历数组找到历史价格最低点,再往后遍历,如果出现那一天价格比最低点高,说明有利润(差值) * 记录下这个利润,继续往后遍历,记录下最大利润,如果最低点后面无元素了,说明 * 这笔交易里没有利润可赚。 */ //定义最低价格min,初始值原创 2022-03-07 21:22:23 · 3111 阅读 · 0 评论 -
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。【LeetCode Hot 100】
力扣热题100之第160题:方法一、差值步法:这个方法的思路为先定义两个指针,分别指向两条链表的头节点,再一人一步往后走,如果这两条链表有相交,则两个指针必定会相遇,若没有相遇则返回null,说明两条链表没有相交。但是上述情况是在两条链表长度相等的情况下,若这两条链表不相等怎么办呢?我们可以先找到两条链表中较长的那条,让指向长链表的那个头指针先走它们两个链表的长度差值步数,比如链表A有八个节点,长度为8,链表B有七个节点,长度为7,则它们差值步数为1,即可以先让指向链表A的头指针先走1步,然原创 2022-03-04 21:19:02 · 2164 阅读 · 12 评论 -
数组表示若干个区间的集合,请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。【LeetCodeHot100】
数组表示若干个区间的集合,请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。原创 2022-06-23 17:55:04 · 729 阅读 · 0 评论