Leetcode
文章平均质量分 54
灰太狼家的小鸭子
物是人非事事休
展开
-
LeetCode:151. 反转字符串中的单词
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。反转后的字符串中不能存在前导空格和尾随空格。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。是由非空格字符组成的字符串。151. 反转字符串中的单词。原创 2023-06-01 09:22:57 · 670 阅读 · 0 评论 -
LeetCode---打家劫舍系列
package com.twice_LiKo.动态规划;/*** 打家劫舍的问题:*///dp 是考虑 i以内的房屋下,能偷的最多金额//递推公式 :dp[i]=max(dp[i-1],dp[i-2] + num[i]) =>第i个房屋不偷,和第i个房屋偷,但是i-1个房屋肯定不能偷;//初始化dp//dp[1]要取前两个数中最大的数://下标index 从i=2开始i++){//房屋下标从0开始337. 打家劫舍 III小偷又发现了一个新的可行窃的地区。原创 2023-05-14 09:44:11 · 346 阅读 · 0 评论 -
LeetCode---494目标和
494. 目标和给你一个整数数组nums和一个整数target。向数组中的每个整数前添加'+'或'-',然后串联起所有整数,可以构造一个2'+'1'-'"+2-1"返回可以通过上述方法构造的、运算结果等于target的不同的数目。5一共有 5 种方法让最终目标和为 3。1。原创 2023-05-12 08:51:03 · 350 阅读 · 0 评论 -
LeetCode---全排列问题
给定一个不含重复数字的数组。原创 2023-05-08 09:48:30 · 306 阅读 · 0 评论 -
LeetCode---491递增子序列
491. 递增子序列给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中。你可以按返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。[[4,4]]原创 2023-05-08 09:33:39 · 93 阅读 · 0 评论 -
LeetCode---回溯算法中的子集问题
78. 子集给你一个整数数组nums,数组中的元素。返回该数组所有可能的子集(幂集)。解集包含重复的子集。你可以按返回解集。原创 2023-05-06 21:23:11 · 491 阅读 · 0 评论 -
代码随想录---347. 前 K 个高频元素
给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按返回答案。[1,2][1]原创 2023-04-21 20:15:36 · 91 阅读 · 0 评论 -
代码随想录---142. 环形链表 II
指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。,返回链表开始入环的第一个节点。来表示链表尾连接到链表中的位置(,仅仅是为了标识链表的实际情况。返回索引为 1 的链表节点。返回索引为 0 的链表节点。给定一个链表的头节点。如果链表无环,则返回。,则在该链表中没有环。原创 2023-04-18 08:53:11 · 218 阅读 · 0 评论 -
代码随想录---20. 有效的括号
给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。原创 2023-04-17 09:08:14 · 133 阅读 · 0 评论 -
代码随想录---135分发糖果
困难1.2K相关企业n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。1请你给每个孩子分发糖果,计算并返回需要准备的。5你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。4你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。原创 2023-04-11 09:00:26 · 562 阅读 · 0 评论 -
代码随想录:55. 跳跃游戏;45. 跳跃游戏 II
给定一个非负整数数组 ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。解析:贪原创 2023-04-08 08:52:54 · 231 阅读 · 0 评论 -
代码随想录---完全背包问题基础
有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。。原创 2023-03-22 09:11:17 · 201 阅读 · 0 评论 -
代码随想录---01背包问题
由dp[i - 1][j]推出,即背包容量为j,里面不放物品i的最大价值,此时dp[i][j]就是dp[i - 1][j]。(其实就是当物品i的重量大于背包j的重量时,物品i无法放进背包中,所以被背包内的价值依然和前面相同。由dp[i - 1][j - weight[i]]推出,dp[i - 1][j - weight[i]] 为背包容量为j - weight[i]的时候。(物品i的价值),就是背包放物品i得到的最大价值。确定dp数组的含义:dp[i][j] 是表示从。的背包中,得到的价值总和是多少。原创 2023-03-19 11:17:28 · 690 阅读 · 0 评论 -
代码随想录:动态规划的问题
斐波拉契、爬楼梯、不同路径背包问题打家劫舍问题股票问题子序列问题确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组。原创 2023-03-15 10:13:57 · 312 阅读 · 0 评论 -
LeetCode:回溯问题中的组合问题
77. 组合中等1.3K相关企业给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。你可以按返回答案。原创 2023-03-04 12:03:59 · 118 阅读 · 0 评论 -
代码随想录中:回溯算法的基础
参数(一般函数的返回值是void)、终止条件、单层递归的条件;因为回溯法解决的都是在集合中递归查找子集,原创 2023-03-04 10:46:52 · 376 阅读 · 0 评论 -
LeetCode:构造最大二叉树;使用中序和后序数组构造二叉树;使用前序和中序数组遍历二叉树。
中等636给定一个不重复的整数数组nums。可以用下面的算法从numsnums返回 nums构建的最大二叉树。递归调用如下所示:- [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5]。- [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1]。- 空数组,无子节点。- [2,1] 中的最大值是 2 ,左边部分是 [] ,右边部分是 [1]。- 空数组,无子节点。- 只有一个元素,所以子节点是一个值为 1 的节点。原创 2023-03-01 13:26:13 · 264 阅读 · 0 评论 -
LeetCode:
404. 左叶子之和给定二叉树的根节点root,返回所有左叶子之和。24在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24root = [1]0。原创 2023-02-27 10:14:24 · 61 阅读 · 0 评论 -
LeetCode:257. 二叉树的所有路径
/返回结果集:return res;//加入节点的路径:return res;//递归的出口;//前序遍历;先加入节点的值://拼接字符i++){//最后一个元素;return;//递归的出口;//左子树=null){//递归到叶子节点退出后,path才会删除最后一个元素,进行回溯;//右子树:=null){//删除最后一个元素,进行回溯;原创 2023-02-26 11:10:28 · 65 阅读 · 0 评论 -
LeetCode:二叉树的最大深度104;559. N 叉树的最大深度
104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 , 3 / \ 9 20 / \ 15 7返回它的最大深度 。原创 2023-02-25 10:42:38 · 416 阅读 · 0 评论 -
Leetcoed:对称二叉树
给你一个二叉树的根节点。, 检查它是否轴对称。101. 对称二叉树。原创 2023-02-24 14:36:16 · 123 阅读 · 0 评论 -
LeetCode:二叉树的层次遍历
102. 二叉树的层序遍历给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。原创 2023-02-24 10:11:39 · 145 阅读 · 0 评论 -
代码随想录---二叉树的前中后序遍历使用非递归的方法---迭代的方式来实现。
144. 二叉树的前序遍历。145. 二叉树的后序遍历。94. 二叉树的中序遍历。给定一个二叉树的根节点。给你一棵二叉树的根节点。原创 2023-02-23 22:46:16 · 68 阅读 · 0 评论 -
代码随想录---二叉树的总结和二叉树的定义
代码随想录---二叉树的总结和二叉树定义原创 2023-02-23 15:09:57 · 266 阅读 · 0 评论 -
LeetCode:347. 前 K 个高频元素
347. 前 K 个高频元素给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按返回答案。[1,2][1]原创 2023-02-23 11:29:26 · 236 阅读 · 0 评论 -
LeetCode:239. 滑动窗口最大值
239. 滑动窗口最大值给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。滑动窗口的位置 最大值[1]原创 2023-02-22 20:15:05 · 292 阅读 · 0 评论 -
代码随想录-Day7:四数相加、三数之和
454. 四数相加 II给你四个整数数组nums1nums2nums3和nums4,数组长度都是n,请你计算有多少个元组2两个元组如下:1。原创 2023-02-21 21:20:31 · 287 阅读 · 0 评论 -
LeetCode:逆波兰式;
平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。返回一个表示表达式值的整数。原创 2023-02-21 10:39:56 · 527 阅读 · 0 评论 -
LeetCode:有效的括号;
20. 有效的括号给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。原创 2023-02-20 21:38:41 · 78 阅读 · 0 评论 -
代码随想录-day5: 哈希表1
/只加入一个就好了,hashset有去重复的能力//因为返回的数组,所以要new一个新的数组int k=0;for (Integer i : hashSet) {//遍历hashsetres[k++]=i;return res;//返回数组while (n!=1 &&!//加入到hashset中//进行求平方和的运算;int sum=0;int temp;//取余数,取个位数;n=n/10;//缩小10倍;return sum;原创 2023-02-20 19:05:56 · 160 阅读 · 0 评论 -
栈和队列的概述
所以栈不提供走访功能,也不提供迭代器(iterator)。不像是set 或者map 提供迭代器iterator来遍历所有元素。队列中先进先出的数据结构,同样不允许有遍历行为,不提供迭代器。可以进行新增和删除元素,但是不能进行遍历或者迭代的功能。请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,原创 2023-02-19 10:41:36 · 95 阅读 · 0 评论 -
Leetcode:15. 三数之和;双指针的思想
不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。原创 2023-02-11 20:19:55 · 102 阅读 · 0 评论 -
Leetcode:面试题 02.07. 链表相交
给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。原创 2023-02-10 09:58:20 · 75 阅读 · 0 评论 -
Leetcode24. 两两交换链表中的节点
Leetcode24. 两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。正在上传…重新上传取消[2,1,4,3]head = [][]head = [1][1]原创 2023-02-07 10:27:39 · 74 阅读 · 0 评论 -
代码随想录-Day4:Leetcode:24. 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。原创 2023-02-06 19:12:34 · 202 阅读 · 0 评论 -
代码随想录-Day3:209移除元素,206. 反转链表
链表翻转的方法原创 2023-02-06 18:18:52 · 172 阅读 · 0 评论 -
定义链表节点:
链表节点定义的情况原创 2023-02-04 20:35:00 · 187 阅读 · 0 评论 -
LeetCode:59. 螺旋矩阵 II;54. 螺旋矩阵
给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。原创 2023-02-03 22:11:18 · 194 阅读 · 0 评论 -
代码随想录-Day2:Leetcode: 滑动窗口;209. 长度最小的子数组
Leetcode: 滑动窗口;209. 长度最小的子数组。原创 2023-02-03 19:55:27 · 152 阅读 · 0 评论 -
LeetCode: 88. 合并两个有序数组
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。最终,合并后数组不应由函数返回,而是存储在数组。需要合并 [1,2,3] 和 [2,5,6]。需要合并的数组是 [] 和 [1]。个元素表示应合并的元素,后。需要合并 [1] 和 []。中,使合并后的数组同样按。合并结果是 [1]。合并结果是 [1]。原创 2023-02-02 11:29:34 · 74 阅读 · 0 评论