自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MD

  • 博客(270)
  • 收藏
  • 关注

原创 Leetcode 902.最大为N的数字组合【深度优先搜索】

文章目录问题描述解题报告实现代码参考资料问题描述我们有一组排序的数字 D,它是 {‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’} 的非空子集。(请注意,‘0’ 不包括在内。)现在,我们用这些数字进行组合写数字,想用多少次就用多少次。例如 D = {‘1’,‘3’,‘5’},我们可以写出像 ‘13’, ‘551’, ‘1351315’ 这样的数字。返回可以用 D 中的数字写出的小于或等于 N 的正整数的数目。示例 1:输入:D = [“1”,“3”,“5”,“7”],

2020-08-21 16:39:44 317

原创 石子游戏系列【博弈论+动态规划】

文章目录Leetcode 877.石子游戏问题描述解题报告实现代码Leetcode 1140. 石子游戏 II问题描述解题报告实现代码Leetcode 1406. 石子游戏 III问题描述解题报告实现代码总结参考资料Leetcode 877.石子游戏问题描述亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。

2020-06-25 20:21:37 811 1

原创 旋转排序数组系列

文章目录Leetcode 33. 搜索旋转排序数组Leetcode 81. 搜索旋转排序数组 IILeetcode 153. 寻找旋转排序数组中的最小值Leetcode 154. 寻找旋转排序数组中的最小值 II总结参考文献Leetcode 33. 搜索旋转排序数组题目描述实现Leetcode 81. 搜索旋转排序数组 II题目描述实现Leetcode 153. 寻找旋转排序数组中的最小值题目描述实现Leetcode 154. 寻找旋转排序数组中的最小值 II题目描述实现总结在旋

2020-06-14 16:51:03 255

原创 单词拆分系列

文章目录Leetcode 139. 单词拆分问题描述解题报告实现代码Leetcode 140. 单词拆分 II问题描述解题报告实现代码参考资料Leetcode 139. 单词拆分问题描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输

2020-06-01 17:08:21 955

原创 跳跃游戏系列题目【动态规划&贪心算法&DFS&BFS】

文章目录Leetcode 55. 跳跃游戏问题描述解题报告动态规划贪心算法实现代码动态规划实现贪心算法实现Leetcode 45. 跳跃游戏 II问题描述解题报告动态规划贪心算法实现代码动态规划实现贪心算法实现Leetcode 1306. 跳跃游戏 III问题描述解题报告实现代码Leetcode 1345. 跳跃游戏 IV问题描述解题报告实现代码Leetcode 1340. 跳跃游戏 V问题描述解题报告实现代码参考资料Leetcode 55. 跳跃游戏问题描述给定一个非负整数数组,你最初位于数组的第一

2020-06-01 02:44:04 1243

原创 几道用 前缀和+哈希表优化【必要时加入状态压缩】来解决连续子数组的题目小结

文章目录Leetcode 560.和为 K 的子数组问题描述解题报告实现代码Leetcode 1248. 统计「优美子数组」问题描述解题报告实现代码Leetcode 523. 连续的子数组和问题描述解题报告实现代码Leetcode 1124. 表现良好的最长时间段问题描述解题报告实现代码Leetcode 1371. 每个元音包含偶数次的最长子字符串问题描述解题报告实现代码总结参考资料Leetcode 560.和为 K 的子数组问题描述给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的

2020-05-20 17:31:16 487

原创 Leetcode 1248. 统计「优美子数组」【记录奇数位置&滑动窗口&前缀和】

文章目录问题描述解题报告记录奇数位置滑动窗口前缀和实现代码记录奇数位置实现滑动窗口实现前缀和+哈希表优化实现参考资料本文在别人的题解【链接列于参考资料中】基础上加上些许自己的理解,若侵权必删。问题描述给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1]

2020-05-15 15:22:10 241

原创 【二叉树后续遍历-应用系列】

文章目录介绍Leetcode 面试题34. 二叉树中和为某一值的路径问题描述实现代码Leetcode 257. 二叉树的所有路径问题描述解题报告实现代码Leetcode 129. 求根到叶子节点数字之和问题描述解题报告实现代码参考资料介绍二叉树的遍历可参考 二叉树的非递归遍历【前序|中序|后序】-解释非常清晰下面介绍几道关于二叉树遍历的题目。Leetcode 面试题34. 二叉树中和为某一值的路径问题描述输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下

2020-05-11 16:44:23 271

原创 Leetcode 面试题 08.11. 硬币【动态规划&回溯法(超时)】

文章目录问题描述解题报告回溯法[TLE]动态规划实现代码回溯法动态规划实现参考资料问题描述硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算 n 分有几种表示法。(结果可能很大,你需要将结果模上1000000007)解题报告回溯法[TLE]这题和 Leetcode 39.组合总数题意相同,只是求解的内容不一样。解释见:Leetcode. 组合总和【回溯法+人为定义...

2020-04-25 23:29:07 359

原创 Leetcode 466. 统计重复个数【寻找循环节,双百提交,解释非常详细】

文章目录问题描述解题报告实现代码参考资料问题描述由 n 个连接的字符串 s 组成字符串 S,记作 S = [s,n]。例如,["abc",3]=“abcabcabc”。如果我们可以从 s2 中删除某些字符使其变为 s1,则称字符串 s1 可以从字符串 s2 获得。例如,根据定义,“abc” 可以从 “abdbec” 获得,但不能从 “acbbe” 获得。现在给你两个非空字符串 s1 和 s...

2020-04-19 20:27:54 183

原创 Leetcode 面试题68 - II. 二叉树的最近公共祖先【递归&非递归】

文章目录问题描述解题报告递归非递归实现代码递归非递归参考资料问题描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,...

2020-04-17 22:19:11 1158

原创 Leetcode 121. 买卖股票的最佳时机【系列题目】

文章目录问题描述解题报告实现代码参考资料问题描述给定一个数组,它的第i个元素时一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。解题报告依次遍历数组,保存已遍历的数组中的最小值。如果当前遍历的元素大于最小值,则假定当前卖出,最小值对应的那天买入,更新能得到的最大利润。实现代码...

2020-04-06 23:23:08 105

原创 Leetcode 面试题40. 最小的k个数【最大堆&快排】

文章目录问题描述解题报告实现代码问题描述输入整数数组 arrarrarr,找出其中最小的 kkk 个数。输入输入输入:arr = [3,2,1], k = 2输出输出输出:[1,2] 或者 [2,1]解题报告方法一:堆维护大小为k的堆,当遍历完数组时,输出堆中的元素。时间复杂度时间复杂度时间复杂度:O(n⋅logk)O(n\cdot log k)O(n⋅logk),维护大小为k...

2020-03-20 12:17:00 157

原创 Leetcode 322. 零钱兑换【动态规划&贪心算法+回溯】

文章目录问题描述解题报告实现代码问题描述给定不同面额的硬币 coinscoinscoins 和一个总金额 amountamountamount。编写一个函数来计算可以凑成总金额所需的最小的硬币个数、如果没有任何一种硬币组合能组成总金额,返回 −1-1−1。输入:coins=[1,2,5],amount=11coins=[1, 2, 5], amount=11coins=[1,2,5],amo...

2020-03-12 21:30:56 788

原创 Leetcode 300. 最长上升子序列【动态规划&贪心+二分】

文章目录问题描述解题报告实现代码问题描述解题报告dp[i]dp[i]dp[i] 表示以第 iii 个数结尾的最长上升子序列的长度。实现代码class Solution {public: int lengthOfLIS(vector<int>& nums) { int n=nums.size(); int ans=-214...

2020-02-07 10:23:45 263

原创 51Nod 1089 最长回文子串V2 【Manacher算法】

描述题解回文分为偶回文和奇回文,在处理就问题上比较繁琐,所以这里使用一个技巧,具体做法是:在字符串首尾及各字符间各插入一个字符(该字符从未在串中出现)。例如:s='daabaacabba',转化为s_new='$#d#a#a#b#a#a#c#a#b#b#a#',上述的s中起初有一个奇回文aadaa和一个偶回文abba,被转化为#a#a#d#a#a#和#a#b#b#a#,长度都转化成奇数了。...

2019-04-08 20:29:12 179

原创 Leetcode 1015. 可被 K 整除的最小整数【构造循环节】

文章目录问题描述解题报告实现代码参考资料问题描述给定正整数 K,你需要找出可以被 K 整除的、仅包含数字 1 的最小正整数 N。返回 N 的长度。如果不存在这样的 N,就返回 -1。示例 1:输入:1输出:1解释:最小的答案是 N = 1,其长度为 1。示例 2:输入:2输出:-1解释:不存在可被 2 整除的正整数 N 。示例 3:输入:3输出:3解释:最小的答案是 N = 111,其长度为 3。提示:1 <= K <= 10^5解题报告实现代码class

2020-10-08 10:14:28 213

原创 Leetcode 208. 实现Trie(前缀树)

文章目录问题描述解题报告实现代码参考资料问题描述实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsWith(“app”); // 返回 truetrie.insert(“app”);

2020-09-05 09:38:03 198

原创 Leetcode 111. 二叉树的最小深度

文章目录问题描述解题报告实现代码参考资料问题描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最小深度 2.解题报告注意:最小深度是根节点到 最近叶子节点 的最短路径上的节点数量。实现代码/** * Definition for a binary tree node. * struc

2020-08-21 10:49:35 133

原创 Leetcode 692. 前K个高频单词【重载比较运算符】

文章目录问题描述解题报告实现代码参考资料问题描述给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。示例 2:输入: [

2020-08-07 16:14:59 209 3

原创 Leetcode 面试题 08.03. 魔术索引【二分法的另类实现】

文章目录问题描述解题报告实现代码参考资料问题描述魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。示例1:输入:nums = [0, 2, 3, 4, 5]输出:0说明: 0下标的元素为0示例2:输入:nums = [1, 1, 1]输出:1提示:nums长度在[1, 1000000]之间解题报告二分法实

2020-07-31 08:54:40 168

原创 Leetcode 658. 找到 K 个最接近的元素【二分查找】

文章目录问题描述解题报告实现代码参考资料问题描述给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。示例 1:输入: [1,2,3,4,5], k=4, x=3输出: [1,2,3,4]示例 2:输入: [1,2,3,4,5], k=4, x=-1输出: [1,2,3,4]说明:k 的值为正数,且总是小于给定排序数组的长度。数组不为空,且长度不超过 10

2020-07-30 20:12:56 187

原创 牛客 JZ56 删除链表种重复的节点

文章目录问题描述解题报告实现代码参考资料问题描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5解题报告注意点:哨兵节点的设置通过一个循环寻找重复的节点实现代码/*struct ListNode { int val; struct ListNode *next; ListNode(int x)

2020-07-29 09:52:32 93

原创 牛客-JZ 57二叉树的下一个节点【二叉树的中序遍历】

文章目录问题描述解题报告实现代码参考资料问题描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。解题报告首先判断该节点 t 是否有右子树:如果没有的话,我们需要返回到该节点的父节点 p ,检查节点 p 的右孩子是否为节点 t,如果是,回溯法节点 p,继续同样的操作,如果不是,返回当前节点的父节点。如果有的话,那么该节点的右子树的最左边的节点即为节点 t 的下一个节点。实现代码/*struct Tree

2020-07-29 09:16:26 93

原创 Leetcode 611. 有效三角形的个数【通过排序减少时间复杂度】

文章目录问题描述解题报告实现代码参考资料问题描述给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3注意:数组长度不超过1000。数组里整数的范围为 [0, 1000]。解题报告暴力解决的时间复杂度为 O(n3)O(n^3)O(n3)可以通过排序减少时间复杂度。排序后,当选定两个数之后:如果第三个数的索引边界

2020-07-28 11:27:22 126

原创 两数相加系列【需要注意细节】

文章目录Leetcode 面试题 02.05. 链表求和问题描述解题报告实现代码Leetcode 67. 二进制求和问题描述解题报告实现代码参考资料Leetcode 面试题 02.05. 链表求和问题描述给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 -&gt

2020-07-28 10:19:07 123

原创 Leetcode 剑指 Offer 54. 二叉搜索树的第k大节点【二叉树的中序遍历】

文章目录问题描述解题报告实现代码参考资料问题描述解题报告由于二叉搜索的中序遍历可以得到一个有序序列,所以本题用中序遍历来实现。中序遍历有 递归 和 非递归 两种实现方式。如果采用 递归 的方式,则需要将树中所有节点遍历完了之后,取出有序序列的第 k 大元素;如果采用 非递归 的方式,则只需遍历到第 k 个节点,即可跳出程序。另外需要注意的一点是:中序遍历时【左-中-右】得到的是从小到大的有序序列;【右-中-左】得到的是从大到小的有序序列,而本题宜采用【右-中-左】的遍历方式。实现代码/*

2020-07-27 10:46:30 128

原创 Leetcode 392. 判断子序列【简单的字符串匹配, 涉及一对一和多对一的匹配问题】

文章目录问题描述解题报告实现代码参考资料问题描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = “abc”, t = “ahbgdc”返回 true.示例

2020-07-27 09:17:15 272

原创 Leetcode 1038. 从二叉搜索树到更大和树【逆向中序遍历】

文章目录问题描述解题报告实现代码参考资料问题描述给出二叉 搜索 树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,2

2020-07-25 21:49:26 383

原创 Leetcode 410. 分割数组的最大值【二分法】

文章目录问题描述解题报告实现代码参考资料问题描述给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)示例:输入:nums = [7,2,5,10,8]m = 2输出:18解释:一共有四种方法将nums分割为2个子数组。其中最好的方式是将其分为[7,2,5] 和 [10,8],因为此时这两个子数组各自的和

2020-07-25 21:43:14 148

原创 牛客-网易2018,第四题,游历魔法王国

文章目录问题描述解题报告实现代码参考资料问题描述魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树。小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多能行动L次。如果小易到达过某个城市就视为小易游历过这个城市了,小易现在要制定好的旅游计划使他能游历最多的城市,请你帮他计算一下他最多能游历过多少个城市(注意0号城市已经游历了,游历过的城市不重复计算)。输入描述:输入包括两行,第一行包括两个正整数 n(2 ≤ n ≤ 50) 和 L(

2020-07-25 12:40:05 244

原创 如何理解对数似然损失函数

介绍通过最大似然估计值来衡量损失。最大似然估计的原理是:找到一组估计值,使得未知参数取该组估计值时,观察值以最大概率出现。设总体 XXX 为离散型随机变量,其分布律为 P(X=xk)=p(xk,θ),k=1,2…P(X=x_k)=p(x_k,\theta), k=1,2\dotsP(X=xk​)=p(xk​,θ),k=1,2…,其中 θ\thetaθ 是待估参数,则 X1=x−1,X2=x2,…,XN=xnX_1=x-1,X_2=x_2,\dots,X_N=x_nX1​=x−1,X2​=x2​,…,X

2020-07-23 10:55:53 9272

原创 Leetcode 124. 二叉树的最大路径和【递归】

文章目录问题描述解题报告实现代码参考资料问题描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。解题报告以某一子树的根节点为研究对象,如果最大路径经过该子树,则必定 经过该子树的根节点以及该子树 左右子树 中的某一子树。实现时:设置全局变量 val,它记录了整棵树的最大路径和。递归搜索每棵子树的根节点,其返回经过该子树根节点的的最大路径和【该路径只经过该子树的某一子树】。在递归的过程中,更

2020-06-27 17:39:01 350 1

原创 不同的二叉搜索树系列 【递归】

文章目录Leetcode 96. 不同的二叉搜索树问题描述解题报告实现代码Leetcode 95. 不同的二叉搜索树 II问题描述解题报告实现代码总结参考资料Leetcode 96. 不同的二叉搜索树问题描述给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?解题报告完全模仿 Leetcode 95 来实现的。实现代码class Solution {public: int helper(int start,int end){ int ret=0;

2020-06-26 14:27:11 151

原创 Leetcode 剑指 Offer 09. 用两个栈实现队列【数据结构设计】

文章目录问题描述解题报告实现代码参考资料问题描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]解题报告数据入队列时,将数据压入栈 1 中;

2020-06-25 20:53:13 208

原创 RMQ(范围最小化问题)【倍增法】

文章目录问题描述解题报告实现代码参考资料问题描述范围最小化问题(Range Minimum Query,RMQ)。给出一个 n 个元素的数组 A1,A2,…,AnA_1, A_2,\dots,A_nA1​,A2​,…,An​,设计一个数据结构,支持查询 Query(L, R): 计算 minAL,AL+1,…,ARmin{A_L, A_{L+1},\dots,A_R}minAL​,AL+1​,…,AR​。解题报告令 dp[i][j]dp[i][j]dp[i][j] 表示从 iii 开始的,长度为 2

2020-06-23 12:43:36 280

原创 Leetcode 1483. 树节点的第 K 个祖先【倍增法】

文章目录问题描述解题报告实现代码参考资料问题描述给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出,其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。请你设计并实现 getKthAncestor(int node, int k) 函数,函数返回节点 node 的第 k 个祖先节点。如果不存在这样的祖先节点,返回 -1 。树节点的第 k 个祖先节点是从该节点到根节点路径上的第 k 个节点。输入:[“TreeAncestor”,“ge

2020-06-20 11:44:57 434

原创 Leetcode 1482. 制作m束花所需的最少天数【二分法】

文章目录问题描述解题报告实现代码参考资料问题描述给你一个整数数组 bloomDay,以及两个整数 m 和 k 。现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。示例 1:输入:bloomDay = [1,10,3,10,2], m = 3, k = 1输出:3解释:让我们一起观察这三天

2020-06-19 20:14:58 181

原创 Leetcode 1481. 不同整数的最少数目

文章目录问题描述解题报告实现代码参考资料问题描述给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目。示例 1:输入:arr = [5,5,4], k = 1输出:1解释:移除 1 个 4 ,数组中只剩下 5 一种整数。解题报告问题的关键是对 unordered_map 按照 value 进行排序。方法是将 unordered_map 的 key 和 value 作为 pair 放到 vector 中,然后定义 pair

2020-06-19 19:57:51 191

原创 Leetcode 1028. 从先序遍历还原二叉树【二叉树遍历系列】

文章目录问题描述解题报告实现代码参考资料问题描述我们从二叉树的根节点 root 开始进行深度优先搜索。在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出 S,还原树并返回其根节点 root。输入:“1-2–3--4-5–6--7”输出:[1,2,5,3,4,6,7]解题报告模拟先序遍历进行反序列化

2020-06-18 23:37:33 217

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除