热题专题

热题系列章节6

297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 示

【LeetCode热题 100】螺旋矩阵

leetcode原地址:https://leetcode.cn/problems/spiral-matrix/description 描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2:

【C++LeetCode】【热题100】字母异位词分组【中等】-不同效率的题解【3】

题目: 暴力方法: class Solution {public:vector<vector<string>> groupAnagrams(vector<string>& strs) {std::unordered_set<std::string> uniqueWord;//单词字符唯一化集合vector<vector<std::string>> res;//结果for(int i

牛客热题:最长回文子串

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:最长回文子串题目链接方法一:动态规划思路代码复杂度 牛客热题:最长回文子串 题目链接 最长回文子串_牛客题霸_牛客网 (nowcoder.com) 方法一:动态规划 思路 ①状态表示: d p [ i ] [ j ] dp[i

定个小目标之刷LeetCode热题(22)

这道题最容易想的就是排序后再遍历,但是时间复杂度就不是O(n)了,所以还是得用更优的解法,直接看题解,它是使用了HashSet,遍历数组,对于每一个数x,如果不存在x - 1则进入内循环,否则跳过,内循环里就是依次查看x+1、x+2、x+3、......是否存在,并维护一个变量currentStreak来记录连续数字的长度,维护一个longestStreak变量来记录出现最长的连续数字的长度,

牛客热题:最长上升子序列(一)

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:最长上升子序列(一)题目链接方法一:简单dp思路代码复杂度 牛客热题:最长上升子序列(一) 题目链接 最长上升子序列(一)_牛客题霸_牛客网 (nowcoder.com) 方法一:简单dp 思路 ①状态表示 d p [ i ]

定个小目标之刷LeetCode热题(21)

这是道技巧题,利用了 (num - 1)% n 计算下标的形式来将数组元素与数组索引产生映射关系,代码如下,可以看下注释 class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {int n = nums.length;for (int num : nums) {// 利用哈希表原理计算元素下标,从题意可

LeetCode热题3.无重复的最长字串

前言: 经过前序的一系列数据结构和算法学习后,开始用leetCode热题练练手。 . - 力扣(LeetCode) 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 解题思路: 使用迭代变量字符串,效率还存在优化空间,下期分解。

定个小目标之刷LeetCode热题(20)

这题与上一题有一点不同,上一题是判断链表是否存在环,这题是寻找入环的第一个节点,有一个规则是这样的,在存在环的情况下,运用快慢指针判断是否有环结束时,把快指针指向头结点,慢指针不变,然后循环快慢指针每次只走一步,最终会在入环的第一个节点相遇,代码如下 public class Solution {public ListNode detectCycle(ListNode head) {if (

牛客热题:兑换零钱(一)

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:兑换零钱(一)题目链接方法一:动态规划思路代码复杂度 方法二:递归思路总结思路:代码复杂度 牛客热题:兑换零钱(一) 题目链接 兑换零钱(一)_牛客题霸_牛客网 (nowcoder.com) 方法一:动态规划 思路 首先我们思考当

LeetCode热题1. 两数之和

前言: 经过前序的一系列数据结构和算法学习后,开始用leetCode热题练练手。锻炼编程思维的同时,可以检验下之前学习效果。 . - 力扣(LeetCode) 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。 示例 1: 输入:nums = [2,7,11,15], target = 9

最长有效括号 - LeetCode 热题 90

大家好!我是曾续缘🤪 今天是《LeetCode 热题 100》系列 发车第 90 天 动态规划第 10 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 最长有效括号 给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s = "(()"输出:2解释:最长有效括号子串是 "()" 示例 2: 输入:s = ")()()

Java数据结构与算法(leetcode热题881. 救生艇)

前言 救生艇属于贪心算法,解题之前条件一定要归纳好。题目中存在3个要求: 1.一艘船最多坐2人 2.船数要求最小 3.每艘船重量小于limit 意味着体重较轻的两人可以同乘一艘救生艇。 . - 力扣(LeetCode) 实现原理 1.重量大的有轻的可以配对,则可以配对同乘。 2.重量大的没有轻的可以配对,则单独乘。 3.涉及到轻重配对,最佳还是优先给予排序好的数据进行配对。

定个小目标之刷LeetCode热题(15)

这道题直接就采用两数相加的规则,维护一个进阶值(n)即可,代码如下 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {// 新建一个值为0的头结点ListNode newHead = new ListNode(0);// 创建几个指针用于遍历链表ListNode p = l1, q = l

分割等和子集 - LeetCode 热题 89

大家好!我是曾续缘💚 今天是《LeetCode 热题 100》系列 发车第 89 天 动态规划第 9 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。   示例 1: 输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1,

牛客热题:最长公共子串

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:最长公共子串题目链接方法一:动态规划思路代码复杂度 方法二:dp数组的空间优化思路代码复杂度 牛客热题:最长公共子串 题目链接 最长公共子串_牛客题霸_牛客网 (nowcoder.com) 方法一:动态规划 思路 代码

乘积最大子数组 - LeetCode 热题 88

大家好!我是曾续缘😆 今天是《LeetCode 热题 100》系列 发车第 88 天 动态规划第 8 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 乘积最大子数组 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 示例 1: 输入: nums = [2,3,-2,4

LeetCode热题100—链表(二)

19.删除链表的倒数第N个节点 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5] 示例 2: 输入:head = [1], n = 1输出:[] 示例 3: 输入:head = [1,2], n = 1输出:[1] 思路 这道题很明显要用双指针

LeetCode 热题 100 第56.合并区间

思路: class Solution {public int[][] merge(int[][] intervals) {if(intervals.length <= 1) return intervals;List<int[]> res = new ArrayList<>();Arrays.sort(intervals, (o1,o2) -> o1[0] - o2[0]);for(int[

杨辉三角 - LeetCode 热题 82

大家好!我是曾续缘🤎 今天是《LeetCode 热题 100》系列 发车第 82 天 动态规划第 2 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。   示例 1: 输入: numRows = 5输出: [[1],[1,1],[1,2,1],

定个小目标之每天刷LeetCode热题(7)

今天这道题是道简单题,使用双指针进行迭代即可,画了下草图如下 代码如下 class Solution {public ListNode reverseList(ListNode head) {if (head == null || head.next == null) {return head;}ListNode p = head, q = head.next, temp = nu

爬楼梯 - LeetCode 热题 81

大家好!我是曾续缘😇 今天是《LeetCode 热题 100》系列 发车第 81 天 动态规划第 1 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶

划分字母区间 - LeetCode 热题 80

大家好!我是曾续缘🤖 今天是《LeetCode 热题 100》系列 发车第 80 天 贪心算法第 4 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 划分字母区间 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 示例 1:

Leecode热题100---二分查找--4:寻找两个正序数组的中位数

题目: 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 解法1、暴力解法(归并) 思路: 合并 nums1,nums2 为第三个数组 排序第三个数组 按下标,找出中位数 class Solution{public:double findMedianSortedArrays(vector<int>& nums1

定个小目标之每天刷LeetCode热题(3)

这是一道简单题,我这里就只讲两种解法 第一种是数组加双指针,先遍历链表将值存到数组里,然后分别从数组两端进行一一比较判断是否满足回文,代码实现 class Solution {public boolean isPalindrome(ListNode head) {List<Integer> vals = new ArrayList<Integer>();// 将链表的值复制到数组中Li

Leecode热题100---78:子集(回溯)

题目: 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 注:子集、组合与排列是不同性质的概念。子集、组合是无顺序的({1, 2} 和{2, 1}是同一个集合),而排列是和元素顺序有关。 既然是无序,取过的元素不会重复取,写回溯算法的时候,for就要从startIndex开始,而不是从0开始! num