【快慢指针】个人练习-Leetcode-142. Linked List Cycle II
题目链接:https://leetcode.cn/problems/linked-list-cycle-ii/description/ 题目大意:给一个链表的头部,判断链表是否有环,如果有,返回环的第一个指针;如果没有,返回nullptr 思路:简单的思路是并查集,第二次插入的那个指针就是环的起点。但这样空间复杂度还是 O ( N ) O(N) O(N)。使用快慢指针可以让空间复杂度降为 O ( 1 ) O(1...
【LeetCode:2742. 给墙壁刷油漆 + 递归 + 记忆化搜索 + dp】
🍔 目录 🚩 题目链接⛲ 题目描述🌟 求解思路&实现代码&运行结果⚡ 递归 + 记忆化搜索 + dp🥦 求解思路🥦 实现代码🥦 运行结果 💬 共勉 🚩 题目链接 2742. 给墙壁刷油漆 ⛲ 题目描述 给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time ,分别表示给 n 堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠: 一位需要 付费 的油漆匠,刷第 i 堵墙需要花费 time[i] 单位...
【贪心】【哈希表】个人练习-Leetcode-846. Hand of Straights
题目链接:https://leetcode.cn/problems/hand-of-straights/ 题目大意:给出一数列,求是否能刚好将它们分成若干组,每组的元素数量为groupSize,并且元素连续。 思路:因为题目的限制很死,如果能够分那么分的结果一定是确定的。那么就可以贪心做。 先排序,并记录每种元素出现的次数,用哈希表cnt来记。然后从小到大遍历,每轮从【残存次数大于0的最小的数】开始(可以用一个...
【DFS】个人练习-Leetcode-LCS 03. 主题空间
题目链接:https://leetcode.cn/problems/YesdPw/description/ 题目大意:二位字符数组grid[][],0代表走廊,其他字符代表某种type的房间。上下左右连续的同type的房间被视为同一块区域。grid[][]边缘的房间也视为和走廊相接(相当于最外层包了一圈0)。求不和0接触的最大的区域面积。 思路:主要还是DFS,但具体怎么DFS没想太明白,写得磕磕绊绊,最后还是...
leetcode-19-回溯
引自代码随想录 [77]组合 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]] 1、大致逻辑 k为树的深度,到叶子节点的路径即为一个结果 开始索引保证不重复取数 每一个节点为一个for循环 2、剪枝(优化) (1)和大于n,结束递归。 (2)剩余...
【LeetCode:394. 字符串解码 + 栈 | 递归】
🍔 目录 🚩 题目链接⛲ 题目描述🌟 求解思路&实现代码&运行结果⚡ 栈 | 递归🥦 求解思路🥦 实现代码🥦 运行结果 💬 共勉 🚩 题目链接 394. 字符串解码 ⛲ 题目描述 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字...
leetcode153. 寻找旋转排序数组中的最小值
leetcode153. 寻找旋转排序数组中的最小值 使用二分法。中间值如果小于等于最右边的值,去左边部分找;中间值如果大于最右边的值,去右半部分找。 def rotate_array_min(nums): n = len(nums) low = 0 high = n - 1 while low < high: mid = low + (high - low) // 2 if nums[mid] < nums[...
leetcode-12-[226]翻转二叉树[101]对称二叉树[104]二叉树的最大深度[111]二叉树的最小深度
前置知识: 深度:任意节点到根节点的节点数 高度:任意节点到叶子节点(左右孩子都为空)的节点数 一、[226]翻转二叉树 重点:交换节点应该传入根节点 class Solution { public TreeNode invertTree(TreeNode root) { if(root==null) return root; //前序遍历 swap(root); invertTree(root.left); i...
【LeetCode:2982. 找出出现至少三次的最长特殊子字符串 II + 二分 + 滑动窗口】
🍔 目录 🚩 题目链接⛲ 题目描述🌟 求解思路&实现代码&运行结果⚡ 二分 + 滑动窗口🥦 求解思路🥦 实现代码🥦 运行结果 💬 共勉 🚩 题目链接 2982. 找出出现至少三次的最长特殊子字符串 II ⛲ 题目描述 给你一个仅由小写英文字母组成的字符串 s 。 如果一个字符串仅由单一字符组成,那么它被称为 特殊 字符串。例如,字符串 “abc” 不是特殊字符串,而字符串 “ddd”、“zz” 和 “f” 是特...
【LeetCode】每日一题 2024_6_4 将元素分配到两个数组中 II(二分、离散化、树状数组)
文章目录 LeetCode?启动!!!题目:将元素分配到两个数组中 II题目描述代码与解题思路 每天进步一点点 LeetCode?启动!!! 又有段时间没写每日一题的分享了,原本今天是打算早上发完晨起计划之后发的,但是今天太忙了,忙着忙着一直没时间把文章写完,拖着拖着就拖到晚上了 只能在晚上离散数学的课上悄摸摸写完发了 题目:将元素分配到两个数组中 II 题目链接:将元素分配到两个数组中 II 题目描述 代码与...