binary-tree-maximum-path-sum leetcode maximum

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

[Leetcode] 0705. 设计哈希集合

705. 设计哈希集合 English Version 题目描述 不使用任何内建的哈希表库设计一个哈希集合(HashSet)。 实现 MyHashSet 类: void add(key) 向哈希集合中插入值 key 。 bool contains(key) 返回哈希集合中是否存在这个值 key 。 ......
Leetcode 0705

LeetCode 203. 移除链表元素

题目链接:LeetCode 203. 移除链表元素 本题是一个经典的单链表删除元素的题目,主要注意的有两点: 如果删除的元素是不是头元素,则直接 p.Next= p.Next.Next即可 如果删除的元素是头元素,则需要进行单独的处理 for head != nil && head.Val == v ......
LeetCode 元素 203

LeetCode 59. 螺旋矩阵 II

题目链接:LeetCode 59. 螺旋矩阵 II 本题不涉及算法,只是简单的模拟,但是由于边界条件比较多,因此容易出错。 分析题干:题目要求按照右、下、左、上、这样的顺序对数组进行填充,填充的值为 1 ~ n*n,因此问题的关键就是找到待填充的位置,将其值赋值为 i 即可。 由于填充的顺序是有规律 ......
矩阵 螺旋 LeetCode 59 II

LeetCode 209. 长度最小的子数组

题目链接:LeetCode 209. 长度最小的子数组 本题是一个滑动窗口的题, 所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。 在本题中实现滑动窗口,主要确定如下三点: **窗口内是什么?**窗口就是 满足其和 ≥ target 的长度最小的 连续 子数组。 ** ......
数组 长度 LeetCode 209

[Leetcode] 0703.数据流中的第K大元素

703. 数据流中的第 K 大元素 点击上方标题跳转至leetcode 题目描述 设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。 请实现 KthLargest 类: KthLargest(int k, int[] nums) 使用整数 ......
数据流 Leetcode 元素 数据 0703

LeetCode 977. 有序数组的平方

题目链接 :LeetCode 977. 有序数组的平方 本题直接暴力求解就是先求出每个元素平方后的值,再对平方后的值进行排序, 双指针解法 由于数组其实是有序的, 只不过负数平方之后可能成为最大数了。那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间。此时可以考虑双指针法了,i指 ......
数组 LeetCode 977