leetcode detonate maximum bombs

LeetCode 76. 最小覆盖子串

###题目链接:LeetCode 76. 最小覆盖子串 ###题意: 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 ###解题思路: 方法:采用双指针的方法(或者叫滑动窗口) 双指针算法(滑动窗 ......
盖子 LeetCode 76

leetcode 101 对称二叉树 Simple

##题目 给你一个二叉树的根节点 root , 检查它是否轴对称。 输入:root = [1,2,2,3,4,4,3] 输出:true 输入:root = [1,2,2,null,3,null,3] 输出:false ##题解 考察二叉树的遍历, 使用广度优先 BFS 方法. BFS 的关键在于使用 ......
leetcode Simple 101

LeetCode 473 火柴拼正方形

LeetCode | 473.火柴拼正方形 你将得到一个整数数组 matchsticks ,其中 matchsticks[i] 是第 i 个火柴棒的长度。你要用 所有的火柴棍 拼成一个正方形。你 不能折断 任何一根火柴棒,但你可以把它们连在一起,而且每根火柴棒必须 使用一次 。 如果你能使这个正方形 ......
正方形 正方 火柴 LeetCode 473

LeetCode 周赛 344(2023/05/07)手写递归函数的固定套路

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 今天下午有力扣杯战队赛,不知道官方是不是故意调低早上周赛难度给选手们练练手。 往期周赛回顾:LeetCode 单周赛第 343 场 · 结合「下一个排列」的贪心构造问题 周赛概览 T1. ......
套路 函数 LeetCode 2023 344

LeetCode 15. 三数之和

###题目链接:LeetCode 15. 三数之和 ###题意: 在给定的数组中,找出三个数(三个数不重复)使得他们相加的和为 0 ,同时答案中不能有重复的答案 ###解题思路: ####完整代码如下: //双指针做法首先要有序 // 解法一 最优解,双指针 + 排序 func threeSum(n ......
之和 LeetCode 15

LeetCode 18. 四数之和

###题目链接:LeetCode 18. 四数之和 ###题意: 本题思路与LeetCode 15. 三数之和思路完全一样,只是多加了一层for循环 ###解题思路: ####完整代码如下: func fourSum(nums []int, target int) [][]int { // 四元组, ......
之和 LeetCode 18

LeetCode 383. 赎金信

###题目链接:LeetCode 383. 赎金信 ###题意: 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 ###解题思路: 首先利用map记录magazine 中所有出现的字母,key是单个字母,valu ......
LeetCode 383

LeetCode 454. 四数相加 II

###题目链接:LeetCode 454. 四数相加 II ###题意: 给定四个数组,找出在四个数组中,各取一个数,使得四个数相加和为0 ###解题思路: 本题给出的是四个独立的数组,只要找到nums1[i] + nums2[j] + nums3[k] + nums4[l] = 0就可以,不用考虑 ......
LeetCode 454 II

LeetCode 516. 最长回文子序列

class Solution { public: int f[1010][1010];//f[i][j]表示s[i~j]之间的最长序列 int INF=0x3f3f3f3f; int longestPalindromeSubseq(string s) { int n=s.size(); s=' '+ ......
回文 序列 LeetCode 516

LeetCode 1. 两数之和

###题目链接:LeetCode 1. 两数之和 ###题意: 本题就是要找出数组中的两个数,使得它们的和等于target ###解题思路: 1、 首先暴力的做法就是两层的for循环,遍历整个nums数组,找出所有的组合,判断组合中是否有相加等于target的组合 算法复杂度为O(n^2) , ## ......
之和 LeetCode

LeetCode 202. 快乐数

###题目链接:LeetCode 202. 快乐数 ###题意: 本题是让我们判断一个数是否是快乐数,题干中给出了快乐数的条件。 ###解题思路: 方法一: 在题干中指出,如果一个数不是快乐数的话,那么它的各个位上的数字的平方和会无限循环,始终变不到1, 也就是说求和的过程中,sum会重复出现,因此 ......
LeetCode 202

LeetCode 349. 两个数组的交集

###题目链接:LeetCode 349. 两个数组的交集 ###题意: 本题题意是让我们找出两个数组中的交集,注意交集中不能出现重复元素 ###解题思路: 思路比较常规,先遍历数组num1,对于每个首次出现的数字,对应位置上的数值 +1, 再遍历数组num2,判断当前数字是否在num1中出现,如果 ......
数组 交集 LeetCode 两个 349

LeetCode 242. 有效的字母异位词

###题目链接:LeetCode 242. 有效的字母异位词 ###题意: 本题是要判断两个字符串 s 和 t,是否是字母异位词,所谓字母异位次就是 如果 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 ###解题思路: 首先我们很容易想到,最简单的思路就是先遍历一遍s字 ......
字母 LeetCode 242

Leetcode11~20题整理

11. 盛最多水的容器 比较暴力的做法: class Solution { public: int maxArea(vector<int>& h) { vector<int> t; int n = h.size(); int res = -1; for(int i = 0; i < n; i++) ......
Leetcode 11 20

【二分查找】LeetCode 33. 搜索旋转排序数组思路

题目链接 33. 搜索旋转排序数组思路 思路 都在注释里 代码 class Solution { public int search(int[] nums, int target) { int len = nums.length; if(len == 0){ return -1; } int lef ......
数组 LeetCode 思路 33

【二分查找】LeetCode 528. 按权重随机选择

题目链接 528. 按权重随机选择 思路 代码 class Solution { private int[] sum; public Solution(int[] w) { sum = new int[w.length + 1]; for(int i = 1; i < sum.length; i++ ......
权重 LeetCode 528

【二分查找】LeetCode 540. 有序数组中的单一元素

题目链接 540. 有序数组中的单一元素 思路 假如不存在单个的元素,那么在奇数位置上总是成对元素的第一个元素,偶数位置上总是成对元素的第二个元素,但是如果加入了单个元素呢? 我们可以看到在单个元素的左边这个特点没有变化,但是在单个元素的右边,奇数位置上总是成对元素的第二个元素,偶数位置上总是成对元 ......
数组 LeetCode 元素 540

LeetCode/总持续时间可被 60 整除的歌曲

在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒 返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量 ###1. 打表(数据量较小) 列出60的倍数+哈希查找 class Solution { public: int numPairsDivisibleBy60(vector<i ......
LeetCode 时间 歌曲 60

PAT Advanced 1007. Maximum Subsequence Sum

PAT Advanced 1007. Maximum Subsequence Sum 1. Problem Description: Given a sequence of $K$ integers { $N_1, N_2, ..., N_K$ }. A continuous subsequence ......
Subsequence Advanced Maximum 1007 PAT

LeetCode 142. 环形链表 II

###题目链接:LeetCode 142. 环形链表 II ###题意: 如果链表中存在环,则找出环的入口,如果链表中不存在环,则返回null ###解题思路: 解决本题有两个关键的点: 判断链表中是否存在环 如果存在环的话,如何找出环的入口 ####判断链表是否存在环 判断一个链表是否存在环,可以 ......
环形 LeetCode 142 II

leetcode11双指针

本题最关键的一点是移动的是短板,不停向内移动短板才可能将面积变大。 int i=0,j=height.size(); while(i<j){ area=height[i] < height[j]? max(area,(j-i)*height[i++]): max(area,(j-i)*height[ ......
指针 leetcode 11

LeetCode 160. 相交链表

题目链接:LeetCode 160. 相交链表 **题意:**本题是让找出两个相交的链表的交点,并返回。 解题思路: 方法一: 由于A,B两条链表的长度是未知的,长度不一定相同,但是两个链表的后半段是相交的,也就是说两条链表的后半段的某一部分是相同的, 因此我们可以求出两个链表的长度,并求出两个链表 ......
LeetCode 160

LeetCode 19. 删除链表的倒数第 N 个结点

题目链接:LeetCode 19. 删除链表的倒数第 N 个结点 本题依旧采用双指针的解法, 首先快指针先走 n+1 步,然后快慢指针同时往后走。当快指针走到链表末尾时,慢指针所在的位置刚好是倒数第n-1个结点, 然后利用慢指针,删除倒数第n个结点 完整代码如下: func removeNthFro ......
结点 LeetCode 19

LeetCode 24. 两两交换链表中的节点

题目链接:LeetCode 24. 两两交换链表中的节点 本题不涉及算法,直接模拟就可以了,但是模拟的过程中,最好进行画图演示,不然容易出错。 想要达到两两交换链表中节点的效果,就需要按照以下三个步骤进行。 同时为了将头结点和非头结点统一处理,因此新建一个虚拟头结点, 初始时,cur指向虚拟头结点, ......
节点 LeetCode 24

LeetCode/数青蛙

请你返回模拟字符串中所有蛙鸣所需不同青蛙的最少数目 1. 回溯+标记 每一趟跑一个青蛙(超时) class Solution { public: int minNumberOfFrogs(string croakOfFrogs) { int n =croakOfFrogs.size(); strin ......
青蛙 LeetCode

[LeetCode] 1419. Minimum Number of Frogs Croaking

You are given the string croakOfFrogs, which represents a combination of the string "croak" from different frogs, that is, multiple frogs can croak at ......
LeetCode Croaking Minimum Number Frogs

[LeetCode] 1456. Maximum Number of Vowels in a Substring of Given Length

Given a string s and an integer k, return the maximum number of vowel letters in any substring of s with length k. Vowel letters in English are 'a', ' ......
Substring LeetCode Maximum Length Number

LeetCode 周赛 343(2023/04/30)结合「下一个排列」的贪心构造问题

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 今天是五一假期的第二天,打周赛的人数比前一天的双周赛多了,难道大家都只玩一天吗?这场周赛是 LeetCode 第 343 场单周赛,如果不考虑第一题摆烂的翻译,整体题目质量还是很不错哒。 ......
LeetCode 问题 2023 343 04

LeetCode刷题记录|LeetCode热题100|226.翻转二叉树(easy)

题目描述:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 思路与算法:从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。如果当前遍历到的节点 root 的左右两棵子树都已经翻转,只需交换两棵子树的位置,即可完成以 root 为根节点的整棵子树的翻转。 时间复杂度:O(n ......
LeetCode easy 100 226

LeetCode 206. 反转链表

题目链接:LeetCode 206. 反转链表 本题是链表题目中非常重要的一道题目--反转指针。 解题方法有两种:1.双指针法 2. 递归法 首先看双指针法: 快指针总是在慢指针的前面,也就是每次将快指针的节点的next指针更新成指向慢指针,这样不就进行了反转嘛。 完整代码如下: func reve ......
LeetCode 206