首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
热题专题
【LeetCode热题100】前缀和
这篇博客共记录了8道前缀和算法相关的题目,分别是:【模版】前缀和、【模版】二维前缀和、寻找数组的中心下标、除自身以外数组的乘积、和为K的子数组、和可被K整除的子数组、连续数组、矩阵区域和。 #include <iostream>#include <vector>using namespace std;int main() {//1. 读取数据int n = 0, q = 0;ci
阅读更多...
LeetCode 热题100-17 缺失的第一个正数
缺失的第一个正数 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums = [1,2,0]输出:3解释:范围 [1,2] 中的数字都在数组中。 示例 2: 输入:nums = [3,4,-1,1]输出:2解释:1 在数组中,但 2 没有。 示例 3: 输
阅读更多...
LeetCode 热题100-11 滑动窗口的最大值
滑动窗口的最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值-
阅读更多...
LeetCode 热题100-72 每日温度
每日温度 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: 输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0] 示例 2:
阅读更多...
LeetCode 热题100-13 最大子数组和
最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 示例 2: 输入:nums = [1]输出:1 示例 3: 输入:
阅读更多...
一起学习LeetCode热题100道(63/100)
63.搜索插入位置(学习) 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums = [1,3,5,6], target = 5 输出: 2 示例 2: 输入: nums = [1,3,5,6], target = 2 输出: 1 示例 3:
阅读更多...
LeetCode 热题100-37 二叉树的最大深度
二叉树的最大深度 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root = [3,9,20,null,null,15,7]输出:3 示例 2: 输入:root = [1,null,2]输出:2 提示: 树中节点的数量在 [0, 104] 区间内。-100 <= Node.v
阅读更多...
LeetCode 热题100-38 翻转二叉树
翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1] 示例 2: 输入:root = [2,1,3]输出:[2,3,1] 示例 3: 输入:root = []输出:[] 提示: 树中节点数目范围在 [0, 100] 内-100 <=
阅读更多...
一起学习LeetCode热题100道(57/100)
57.电话号码的字母组合(学习) 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits = “23” 输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”] 示例 2: 输入:digits = “” 输出
阅读更多...
LeetCode 热题 100 回顾
目录 一、哈希部分 1.两数之和 (简单) 2.字母异位词分组 (中等) 3.最长连续序列 (中等) 二、双指针部分 4.移动零 (简单) 5.盛最多水的容器 (中等) 6. 三数之和 (中等) 7.接雨水 (困难) 三、滑动窗口 8.无重复字符的最长子串 (中等) 9.找到字符串中所有字母异位词 (中等) 四、子串 10.和为 K 的子数组 (中等) 11.滑动窗口
阅读更多...
LeetCode 热题100-96 只出现一次的数字
只出现一次的数字 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 : 输入:nums = [2,2,1]输出:1 示例 2 : 输入:nums = [4,1,2,1,2]输出:4 示例 3 : 输入:nums =
阅读更多...
一起学习LeetCode热题100道(50/100)
50.二叉树中的最大路径和(学习) 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。 示例 1: 输入:root = [1,2,3] 输出:6 解释:最优路径是 2 -> 1 ->
阅读更多...
【LeetCode热题100】双指针
class Solution {public:void moveZeroes(vector<int>& nums) {int dst = -1,cur = 0;while(cur<nums.size()){if(nums[cur] == 0){cur++;}else{swap(nums[dst+1],nums[cur]);cur++;dst++;}}}}; 题目分析:对于数组分块/数组
阅读更多...
热题系列章节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.涉及到轻重配对,最佳还是优先给予排序好的数据进行配对。
阅读更多...