c++语言
文章平均质量分 63
yinhua405
努力工作
展开
-
895. 最大频率栈
/返回 4 ,因为 4, 5 和 7 出现频率最高,但 4 是最接近顶部的。//返回 7 ,因为 5 和 7 出现频率最高,但7最接近顶部。堆栈变成 [5,7,5,4]。//返回 5 ,因为 5 出现频率最高。堆栈变成 [5,7,5,7,4]。//返回 5 ,因为 5 出现频率最高。堆栈变成 [5,7,4]。//堆栈是 [5,7,5,7,4,5]//堆栈是 [5,7,5,7,4]//堆栈是 [5,7,5,7]//堆栈是 [5,7,5]//堆栈是 [5,7]原创 2023-02-13 07:16:48 · 307 阅读 · 0 评论 -
1143. 最长公共子序列
是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。最长公共子序列是 "ace" ,它的长度为 3。最长公共子序列是 "abc" ,它的长度为 3。两个字符串没有公共子序列,返回 0。是这两个字符串所共同拥有的子序列。,返回这两个字符串的最长。原创 2022-12-09 07:27:09 · 201 阅读 · 0 评论 -
556. 下一个更大元素 III
请你找出符合条件的最小整数,其由重新排列。中存在的每位数字组成,并且其值大于。如果不存在这样的正整数,则返回。,如果存在满足题意的答案,但不是。,返回的整数应当是一个。原创 2022-11-23 06:53:40 · 155 阅读 · 0 评论 -
503. 下一个更大元素 II
是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。第二个 1 的下一个最大的数需要循环搜索,结果也是 2。第一个 1 的下一个更大的数是 2;//重复一次数组就相当于循环。数字 2 找不到下一个更大的数;原创 2022-11-21 07:23:16 · 98 阅读 · 0 评论 -
410. 分割数组的最大值
if (sum + nums[i]> mid) //尝试。//找出最大的left。其中最好的方式是将其分为 [7,2,5] 和 [10,8]。因为此时这两个子数组各自的和的最大值为18,在所有情况中最小。一共有四种方法将 nums 分割为 2 个子数组。//找出左右的尝试范围。个子数组各自和的最大值最小。,你需要将这个数组分成。给定一个非负整数数组。//找第一个大于mid。个非空的连续子数组。原创 2022-11-17 07:38:44 · 158 阅读 · 0 评论 -
652. 寻找重复的子树
对于同一类的重复子树,你只需要返回其中任意。给你一棵二叉树的根节点。原创 2022-11-08 07:01:34 · 117 阅读 · 0 评论 -
652. 寻找重复的子树
对于同一类的重复子树,你只需要返回其中任意。给你一棵二叉树的根节点。原创 2022-11-08 06:58:38 · 53 阅读 · 0 评论 -
652. 寻找重复的子树
对于同一类的重复子树,你只需要返回其中任意。给你一棵二叉树的根节点。原创 2022-11-08 06:37:30 · 90 阅读 · 0 评论 -
710. 黑名单中的随机数
/ 返回0,任何[0,1,4,6]的整数都可以。注意,对于每一个pick的调用,// 0、1、4和6的返回概率必须相等(即概率为1/4)。/保证0-wsize 都是白名单,如果里面有黑名单的映射到wsize-n的白名单中。范围内的任意整数中选取一个。//遍历两次黑名单,原创 2022-11-04 06:46:03 · 233 阅读 · 0 评论 -
710. 黑名单中的随机数
/ 返回0,任何[0,1,4,6]的整数都可以。注意,对于每一个pick的调用,// 0、1、4和6的返回概率必须相等(即概率为1/4)。/保证0-wsize 都是白名单,如果里面有黑名单的映射到wsize-n的白名单中。范围内的任意整数中选取一个。//遍历两次黑名单,原创 2022-11-04 06:43:18 · 194 阅读 · 0 评论 -
380. O(1) 时间插入、删除和获取随机元素
int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true;bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true;// 由于 2 是集合中唯一的数字,getRandom 总是返回 2。集合现在包含 [2]。// 返回 false ,表示集合中不存在 2。// 2 已在集合中,所以返回 false。原创 2022-10-28 07:39:51 · 102 阅读 · 0 评论 -
81 · 寻找数据流的中位数
4,5,1,3], [4,5,1,3,2], [4,5,1,3,2,6] 和 [4,5,1,3,2,6,0] 的中位数是 3。本题的中位数是指将所有数字排序后得到数组的中间值,如果有数组。微信添加【jiuzhang0607】备注【Amazon】领取。[4], [4,5] 和 [4,5,1] 的中位数是 4,[1,2,3] 和 [1,2,3,4] 的中位数是 2,《Amazon高频题礼包》刷完上岸率翻倍![1] 和 [1,2] 的中位数是 1,[1,2,3,4,5] 的中位数是 3。4轮面试3轮遇原题!原创 2022-10-21 07:13:53 · 202 阅读 · 0 评论 -
1109. 航班预订统计
航班编号 1 2 3 4 5。预订记录 3 : 25 25 25 25。总座位数: 10 55 45 25 25。因此,answer = [10,55,45,25,25]预订记录 2 : 20 20。,里面的元素是每个航班预定的座位总数。因此,answer = [10,25]预订记录 1 : 10 10。预订记录 1 : 10 10。预订记录 2 : 15。总座位数: 10 25。原创 2022-10-19 06:49:33 · 213 阅读 · 0 评论 -
1312. 让字符串成为回文串的最少插入次数
字符串 "zzazz" 已经是回文串了,所以不需要做任何插入操作。字符串可变为 "mbdadbm" 或者 "mdbabdm"。插入 5 个字符后字符串变为 "leetcodocteel",每一次操作你都可以在字符串的任意位置插入任意字符。「回文串」是正读和反读都相同的字符串。原创 2022-09-16 07:02:16 · 295 阅读 · 0 评论 -
653 · 添加运算符
/把上一个数据处理,和回溯。的字符串和一个目标值,返回在数字之间添加了。之后所有能得到目标值的情况。原创 2022-08-25 07:28:19 · 179 阅读 · 0 评论 -
1208 · 目标和
给定一个非负整数的列表a1,a2,...an,再给定一个目标S。两种运算,对于每一个整数,选择一个作为它前面的符号。找出有多少种方法,使得这些整数的和正好等于S。原创 2022-08-12 07:09:34 · 86 阅读 · 0 评论 -
941 · 滑动拼图
给定一个拼图板,返回所需的最少移动次数,以解决该板的状态。如果无法解决板的状态,则返回-1。与其相邻的四个方向之一的数字交换位置。时,才能说这块板存在的问题被解决了。表示,还有一块空地用。...原创 2022-08-09 07:19:39 · 296 阅读 · 0 评论 -
1169 · 字符串的排列
给定两个字符串和,如果包含的排列,则写一个函数返回true。 换句话说,第一个字符串的排列之一是第二个字符串的。一起战拖呀!微信加【jiuzhang0607】备注【战拖】即可进入官方刷题群,团战offer!样例样例1:样例2: bool checkInclusion(string &s1, string &s2) { // write your code here mapneedMap; for (auto it : s1) ...原创 2022-07-08 07:11:42 · 92 阅读 · 0 评论 -
427 · 生成括号
给定 n,表示有 n 对括号, 请写一个函数以将其生成所有的括号组合,并返回组合结果。一起战拖呀!微信加【jiuzhang0607】备注【战拖】即可进入官方刷题群,团战offer!样例样例 1:样例 2: vector generateParenthesis(int n) { // write your code here vector vec; vector ret; vector...原创 2022-07-07 06:53:24 · 78 阅读 · 0 评论 -
740 · 零钱兑换 2
给出不同面值的硬币以及总金额. 试写一函数来计算构成该总额的组合数量. 你可以假设每一种硬币你都有无限个.一起战拖呀!微信加【jiuzhang0607】备注【战拖】即可进入官方刷题群,团战offer!你可以做出以下假设:0 ...原创 2022-07-05 07:29:21 · 97 阅读 · 0 评论 -
796 · 开锁
你面前有一个有四个圆形轮子的锁。每个轮子有10个槽:,,,,,,,,,。轮子可以自由旋转并环绕:例如,我们可以把变成,或者变成。每个动作包括转动一个轮子一个槽。锁最初是开始的,这是一个表示四个轮子状态的字符串。你被给了一个的列表,意思是如果锁显示了这些代码中的任何一个,锁的轮子将停止转动,你将无法打开它。给定一个表示将解锁锁的轮子的值的,返回打开锁所需要的最小总次数,如果不可能,则返回-1。一起战拖呀!微信加【jiuzhang0607】备注【战拖】即可进入官方刷题群,团战offer!1.死锁的列表长度原创 2022-07-01 07:11:38 · 129 阅读 · 0 评论 -
857 · 最小的窗口子序列
算给定字符串和,在字符串中找到最小(连续的)子字符串(窗口),使得是的子序列。如果中没有包含中的所有字符的窗口,则返回空字符串。如果有多个这样的最小长度窗口,则返回一个起点编号最小的。样例样例 1:样例 2: string minWindow(string &s, string &t) { // Write your code here int targetSize = t.length(); string ret = ""; int target原创 2022-06-17 07:37:25 · 196 阅读 · 0 评论 -
877 · 同和分割数组
给定一个有n个整数的数组,判断是否存在满足以下条件的三元组 :定义子数组(L, R)表示原始数组从元素下标为L到R的那一段。如果存在这样的三元组,返回 ,否则返回 。样例样例 1:样例 2: bool splitArray(vector &nums) { // write your code here int size = nums.size(); vector sum(nums.size()+1,0); sum[0] = nu...原创 2022-06-15 07:08:47 · 141 阅读 · 0 评论 -
389 · 判断数独是否合法
请判定一个数独是否有效。该数独可能只填充了部分数字,其中缺少的数字用 表示。背完这套刷题模板,真的不一样!北大计院令狐冲15年刷题经验总结《算法小抄模板Cheat Sheet》助你上岸!微信添加【jiuzhang15】备注【Cheat Sheet】领取一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。什么是 ?样例样例1:样例 2: bool isValidSudoku(vector &board){ //行 vec...原创 2022-06-08 06:56:22 · 394 阅读 · 0 评论 -
1275 · 超级幂次
你的任务是计算 a^b mod 1337,其中 a 是一个正整数,b 是一个超级大的正整数,以数组的形式给出。样例样例1样例2 int mul2(int a, int b){ if (b == 0) { return 1; } int ret = 1; while (b != 1) { if (b % 2 == 0) { a = a*a % 1337;原创 2022-06-01 07:24:05 · 237 阅读 · 0 评论 -
534 · 打劫房屋 II
在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,在不触动报警装置的情况下, 你最多可以得到多少钱 。这题是House Robber的扩展,只不过是由直线变成了圈样例样例1输入:原创 2022-05-13 06:58:15 · 83 阅读 · 0 评论 -
392 · 打劫房屋
假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,在不触动报警装置的情况下, 你最多可以得到多少钱 。样例样例 1:输入: [3, 8, 4]输出: 8解释: 仅仅打劫第二个房子.样例 2:输入: [5, 2, 1, 3] 输出: 8解释: 抢第一.原创 2022-05-13 06:44:50 · 71 阅读 · 0 评论 -
1492 · 爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。1 <= piles.length <= 10^4 ...原创 2022-04-29 07:41:38 · 91 阅读 · 0 评论 -
1596 · 可能的二分法
给定一组 N 人(编号为 1, 2, ..., N), 我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。形式上,如果 dislikes[i] = [a, b],表示不允许将编号为 a 和 b 的人归入同一组。当可以用这种方法将每个人分进两组时,返回 true;否则返回 false。1 <= N <= 20000 <= dislikes.length <= 100001 <= dislikes[i][j] <=原创 2022-04-27 07:00:56 · 246 阅读 · 0 评论 -
843 · 数字翻转
给定一个01构成的数组。你可以翻转1变成0或者反转0变成1。请问最少反转多少次可以使得数组满足以下规则:1的后面可以是1或者0,而0的后面必须是0。数组长度 n <= 100000。样例样例 1:输入: [1,0,0,1,1,1]输出: 2解释: 把两个0翻转成1。样例 2:输入: [1,0,1,0,1,0]输出: 2解释: 把第二个1和第三个1都翻转成0。int flipDigit(vector<int> &nums原创 2022-04-21 07:32:33 · 638 阅读 · 1 评论 -
递归反转链表
// 单链表节点的结构class ListNode{ public: int val; ListNode* next; ListNode(int x) { val = x; next = NULL; }};ListNode*traver(ListNode* root, ListNode* &head){ if (root->next == NULL) { ...原创 2022-04-08 06:54:42 · 388 阅读 · 0 评论 -
867 · 四键键盘
假设你有一个特殊的键盘,键盘上有如下键:键1: (A): 在屏幕上打印一个'A'。 键2: (Ctrl-A): 选择整个屏幕。 键3: (Ctrl-C): 复制选择到缓冲区。 键4: (Ctrl-V): 在屏幕上已有的内容后面追加打印缓冲区的内容。现在,你只能按键盘上N次(使用以上四个键),找出你可以在屏幕上打印的“A”的最大数量微信加 jiuzhang15 发送验证信息【视频】领真题考点、面试技巧等免费视频课1 <= N <= 50 答案将在32位有符号整数的范围内。样原创 2022-04-07 07:22:35 · 1026 阅读 · 0 评论 -
296 · 数组去重
描述给定一个长度为NNN的整数数组arrarrarr,返回去掉重复元素之后的数组(去掉重复元素前后数组元素相对次序不变)微信加 jiuzhang15 发送验证信息【视频】领真题考点、面试技巧等免费视频课1≤N≤1051 \leq N \leq 10^51≤N≤105−109≤arr[i]≤109-10^9 \leq arr[i] \leq 10^9−109≤arr[i]≤109样例输入:[3,4,3,6]输出:[3,4,6]解释:元素3重复,所以只需要保留一个元素3而且去重前后原创 2022-03-24 07:41:25 · 144 阅读 · 0 评论 -
119 · 编辑距离
描述给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你可进行三种操作:插入一个字符 删除一个字符 替换一个字符微信加 jiuzhang15 发送验证信息【国内大厂】领字节、阿里、百度等最新高频题len(word1),len(word2)<=500len(word1), len(word2) <= 500len(word1),len(word2)<=500样例样例 1:输入:word1 = "horse原创 2022-03-07 07:28:48 · 144 阅读 · 0 评论 -
762 · 最长公共子序列 II
描述给定两个序列 P 和 Q 。你可以对这对 P 这个序列修改不超过 k 个元素到任意的值,并要求两个修改后序列的最长公共子序列最长。微信加 jiuzhang15 发送验证信息【国内大厂】领字节、阿里、百度等最新高频题样例样例 1:输入:[8,3][1,3]1输出:2解释:把8变成1,公共子序列为[1,3]样例 2:输入:[1, 2, 3, 4, 5][5, 3, 1, 4, 2]1输出:3int longestCommonS原创 2022-03-02 07:35:50 · 241 阅读 · 0 评论 -
838 · 子数组和为K
描述给定一个整数数组和一个整数k,你需要找到连续子数列的和为k的总个数。微信加 jiuzhang15 发送验证信息【838】领最新大厂高频题样例样例1输入: nums = [1,1,1] 和 k = 2输出: 2解释:子数组 [0,1] 和 [1,2]样例2输入: nums = [2,1,-1,1,2] 和 k = 3输出: 4解释:子数组 [0,1], [1,4], [0,3] and [3,4]int subarraySumEqualsK(原创 2022-02-21 07:36:14 · 8409 阅读 · 0 评论 -
1232 · 爆破气球的最小箭头数
描述在二维空间中有许多球形气球。 对于每个气球,提供的输入是水平直径的起点和终点坐标。 由于它是水平的,因此y坐标无关紧要,因此直径的起点和终点的x坐标就足够了。 起点总是小于终点。 最多将有10^4个气球。可以沿x轴从不同点垂直向上发射箭头。 如果xstart≤x≤xend,则坐标为xstart和xend的气球被在x处发射的箭头戳爆。 可以发射的箭头数量没有限制。 一次射击的箭头一直无限地向上移动。 问题是要找到戳破所有气球的最小发射箭头数。样例1输入:[[10,16],.原创 2022-02-15 07:10:00 · 94 阅读 · 0 评论 -
1242 · 无重叠区间
描述给定一些区间,找到需要移除的最小区间数,以使其余的区间不重叠。可以假设区间的终止点一定比起始点大。 区间[1,2]和[2,3]虽然边缘重合,但是它们并未重叠。样例样例1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: [1,3] 被移除后,剩下的区间将不再重叠。样例2:输入: [ [1,2], [1,2], [1,2] ]输出: 2解释: 需要将两个 [1,2] 移除使得剩下的区间不重合。样例3:原创 2022-02-15 06:50:06 · 111 阅读 · 0 评论 -
76 · 最长上升子序列
描述给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。https://en.wikipedia.org/wiki/Longest_increasing_subsequence样例样例 1:输入:nums = [5,4,1,2,3]输出:3解释:LIS 是 [1,2,3]样例 2:.原创 2022-01-21 06:54:44 · 51 阅读 · 0 评论 -
384 · 最长无重复字符的子串
描述给定一个字符串,请找出其中无重复字符的最长子字符串。微信加 jiuzhang15 回【384】领最新大厂高频题样例样例 1:输入: "abcabcbb"输出: 3解释: 最长子串是 "abc".样例 2:输入: "bbbbb"输出: 1解释: 最长子串是 "b".挑战O(n) 时间复杂度int lengthOfLongestSubstring(string &s) { // write your code he...原创 2022-01-14 07:25:26 · 3567 阅读 · 0 评论