【Leetcode 312. [312] 戳气球 动态规划】教程文章相关的互联网学习教程文章

leetcode 766. 托普利茨矩阵【代码】【图】

给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。 示例 1: 输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出:true解释:在上述矩阵中, 其对角线为: "[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]"。 各条对角线上的所有元素均相同, 因此答案是 True 。示例 2: 输入:mat...

LeetCode---42. 接雨水 (hard)【代码】【图】

题目:42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。第一种解法:暴力破解,一列一列算 思路使用双层循环,在遍历每一根柱子的同时,求出第i柱子左右两边高度最高的柱子分别是多少,...

leetcode 7.整数翻转【代码】

leetcode 7.整数翻转 题干 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [?231, 231 ? 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 输入:x = 123 输出:321 示例 2: 输入:x = -123 输出:-321 示例 3: 输入:x = 120 输出:21 示例 4: 输入:x = 0 输出:0 提示: -231 <= x <= 231 - 1 知识点&算法 经典%10 /10 *10...

【leetcode】高频题目整理_图篇( High Frequency Problems, Graph )【图】

截止至今LeetCode题目总量已经有1582题,估计将来每年平均增长300题左右,大部分人肯定是刷不完的,所以得有选择地刷LeetCode。一种公认的刷题策略是按类别刷题,可是每个类别也有许多题,在有限的时间里到底该刷哪些题呢?个人根据LeetCode官方给出的每个题目的出现频率,整理并收录了每个类别里高频出现的题目,对于官方统计频率太低的题目,不予收录,最终得到了这个高频题目表格。例如,对于下图中题号#275与#270的题目将被收录...

LeetCode_121_买卖股票的最佳时机【代码】

题目链接 https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 解题思路 动态规划定义一个数组dp[len][2],其中dp[i][0]代表第i+1天结束的时候没持有股票的最大利润,dp[i][1]表示第i+1天结束的时候持有股票的最大利润现在求dp[i][0],有两种情况 第i+1天既没买也没卖,那么最大利润就是第i天没持有股票的最大利润dp[i-1][0]第i+1天卖了一只股票,那么最大利润就是第i天持有股票的最大利润加上第i+1天卖出股票的最大...

LeetCode135-Candy【代码】【图】

老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢? 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/candy著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出...

leetcode 208 前缀树Trie【代码】【图】

前缀树又称字典树,每颗节点结构与一般树有一点不同。 一般树节点 struct TreeNode { valueType val; vector<TreeNode*> next;//个数不固定,个数代表一个节点有多少个子节点 }本题前缀树节点 struct TrieNode { bool isEnd;//记录这个节点是不是已经存进来的某个单词的最后一个字母 vector<TrieNode*> next;//个数为26个,分别代表26个字母。 }下图为前缀树的样子(隐藏了next中为nullptr的节点)构造函数:Trie() Trie():isEnd(f...

leetcode每日一题—264.丑数II【代码】【图】

题目: 给你一个整数 n ,请你找出并返回第 n 个 丑数 。 丑数 就是只包含质因数 2、3 和/或 5 的正整数。 ji 思路: i2=t: 代表当前丑数数组 已将2的t倍纳入其中 i3=m: 代表当前丑数数组已将 3的m倍纳入其中 i5=c :代表当前丑数数组已将5的c倍纳入其中 解答: class Solution:def nthUglyNumber(self, n: int) -> int:# 放进第一个丑数:1nums = [1] # 三个指针初始化i2,i3,i5= 0,0,0# 算出所有丑数,直到所需的第n个为止for i in...

Leetcode 39 Combination Sum(组合总和)【代码】【图】

@leetcode 本题与Leetcode216 组合总和III以及LeetCode77 Combinations的区别是,集合里面的元素可以重复使用,故递归没有层数限制,只要选取元素总和为target,即可返回。而另外两个知道得递归k层,因为要取k个元素的集合。 回溯三步曲 递归函数参数 void generateSum(vector<int>& candidates, int target, int startIndex, int &sum, vector<int> &p)终止条件 if(sum == target){res.push_back(p);return;} 单层搜索过程 for(in...

Leetcode 524. Longest Word in Dictionary through Deleting【代码】

Description: Given a string s and a string array dictionary, return the longest string in the dictionary that can be formed by deleting some of the given string characters. If there is more than one possible result, return the longest word with the smallest lexicographical order. If there is no possible result, return the empty string. Link: 524. Longest Word in Dictionary through Deleting Example...

LeetCode 剑指 Offer 24. 反转链表【代码】

剑指 Offer 24. 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL限制: 0 <= 节点个数 <= 5000/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* reverseList(struct ListNode* head){struct ListNode* pre=NULL;//转完后开头为NULL嘛struct ListNod...

Leetcode-115 不同的子序列【代码】

这一题很头疼,一开始不会,看了题解认为很简单。但是在做的时候发现细节很多,花了大量的时间才想出来。但是还是有一些需要回顾一下。 题目描述 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是) 题目数据保证答案符合 32 位带符号整数范围...

leetcode-137:只出现一次的数字-ii【代码】

题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 方法一:hash法 解题思路 以数组元素为key,将其出现的次数都存到map中遍历map,只出现一次的返回 代码实现 func singleNumber(nums []int) int {countMap := make(map[int]int)for _, v := range nums {count, ok := countMap[v]if ok {countMap[v] = count+1} else {countMap[v] = 1}}for k, v := range co...

Leetcode Day2【代码】【图】

Leetcode Day2 leetcode -4 尋找兩個正序數組的中位數leetcode -5 最長回文子串leetcode -6 Z字型變換 leetcode -4 尋找兩個正序數組的中位數 題目描述 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。 解 : 解題思路: 把兩數組合併,排序,然後直接求中位數就可以了。唯一要注意的是,js 中的 sort 函數是默認以字符串字典順序排序的,所以會導致在排序數字時會發生 ...

LeetCode1806:还原排列的最少操作步数(置换群 or 模拟)【代码】【图】

题意:题目的意思是,给定一个初始状态perm,然后对perm的每个元素按照上述的规则进行变换操作。问:perm经过多少次这种操作能够变回初始的perm。 解题思路:第一种方法就是模拟,一直变换,直到变成原来的样子。 第二种解法:置换群与不相交循环,如图 code:#解法1: class Solution(object):def check(self,n):for i in range(n):if self.perm[i]==self.arr[i]:continueelse:return Falsereturn Truedef reinitializePermutati...