- 博客(148)
- 收藏
- 关注
原创 力扣面试150题 | 15.三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4],就说明此时三数之和大了,因为数组是排序后了,所以。输出:[[-1,-1,2],[-1,0,1]]输入:nums = [0,1,1]输入:nums = [0,0,0]输出:[[0,0,0]]
2023-12-17 19:33:38 435
原创 力扣面试150题 | 209.长度最小的子数组
numsr-1, numsr] ,并返回其长度。在暴力解法中,是一个 for 循环滑动窗口的起始位置,一个 for 循环为滑动窗口的终止位置,用两个 for 循环完成了一个不断搜索区间的过程。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。输入:target = 11, nums = [1,1,1,1,1,1,1,1]所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。输入:target = 7, nums = [2,3,1,2,4,3]
2023-12-12 15:53:11 536
原创 力扣面试150题 |151.反转字符串中的单词
注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。进阶:如果字符串在你使用的编程语言中是一种可变数据类型,请尝试使用 O(1) 额外空间复杂度的 原地 解法。s 中使用至少一个空格将字符串中的 单词 分隔开。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。给你一个字符串 s ,请你反转字符串中 单词 的顺序。解释:反转后的字符串中不能存在前导空格和尾随空格。
2023-12-12 15:28:28 441
原创 代码随想录二刷| 二叉树 |二叉树的所有路径
本题要找到叶子节点,开始是结束的处理逻辑(把路径放进result中),当 cur 不为空,且其左右孩子都为空的时候就找到了空节点。这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。此时还没完,递归完,要做回溯啊,因为path 不能一直加入节点,它还要删节点,然后才能加入新的节点。因为是前序遍历,需要先处理中间节点,中间节点就是我们要记录路径上的节点,先放进path中。给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
2023-12-11 20:01:48 900
原创 代码随想录二刷 | 二叉树 | 110.平衡二叉树
分别求出左右子树的高度,如果差值小于等于 1 ,则返回当前二叉树的高度,否则返回 -1,表示已经不是平衡二叉树了。这个函数通过栈模拟的后序遍历找每一个节点的高度(其实是通过求传入节点为根节点的最大深度来求的高度)当然此题用迭代法,其实效率很低,因为没有很好的模拟回溯的过程,所以迭代法有很多重复的计算。输入:root = [1,2,2,3,3,null,null,4,4]遇到空节点时终止,返回0,表示当前节点为根节点的树高度为 0。二叉树节点的高度:从根节点到该节点的最长简单路径边的条数。
2023-12-11 19:45:23 1083
原创 力扣面试150题 |有效的括号
遍历字符串的过程中,如果栈已经为空,说明右括号没有找到对应的左括号,return false,对应情况三。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。如果遍历完了字符串,栈不为空,说明有左括号多余了 return false,对应情况一。遍历字符串过程中,栈中没有要匹配的括号, return false,对应情况二。遍历字符串,遇到左括号就把右括号放入栈中,当遇到对应的右括号时将其弹出.输入:s = “()[]{}”输入:s = “()”
2023-12-11 17:04:56 517
原创 力扣面试经典题 | 找出字符串中第一个匹配项的下标
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。本题要在文本串字符串中找出模式串出现的第一个位置 (从0开始),所以返回当前在文本串匹配模式串的位置i 减去 模式串的长度,就是文本串字符串中出现模式串的第一个位置。如果 s[i] 与 t[j + 1] 不相同,j就要从next数组里寻找下一个匹配的位置。如果j指向了模式串t的末尾,那么就说明模式串t完全匹配文本串s里的某个子串了。KMP算法经典题目。
2023-12-11 16:53:22 1112
原创 力扣面试150题 | 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。请必须使用时间复杂度为 O(log n) 的算法。用二分法查找第一个大于等于 target 的下标。
2023-12-10 23:51:20 487
原创 力扣面试150题 | 买卖股票的最佳时期
假如计划在第 i 天卖出股票,那么最大利润的差值一定是在[0, i-1] 之间选最低点买入;解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。同时,你不能在买入前卖出股票。解释:在这种情况下, 没有交易完成, 所以最大利润为 0。输入:prices = [7,6,4,3,1]输入:[7,1,5,3,6,4]
2023-12-10 23:35:23 549
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人