自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ann的博客

一个神经病的梦游……

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

原创 257.二叉树的所有路径

【代码】257.二叉树的所有路径。

2024-02-17 10:18:46 583

原创 110. 平衡二叉树

第一次没有写出来的原因:递归函数的返回值应该是boolean(判断当前节点的是不是AVL树)还是int(返回当前节点的树高)。但是有一个综合的办法,因为树高一定是正数,那么负数就可以表示当前树不是AVL树。

2024-01-23 11:56:26 380

原创 222. 完全二叉树的节点个数

以满二叉树为单位计算节点个数。

2024-01-22 22:12:21 397

原创 101. 对称二叉树

主要是要找到哪两个节点是应该放在一起比较的。

2024-01-22 22:10:42 353

原创 102.二叉树的层序遍历

记录每一层的最后一个节点。

2024-01-21 18:15:40 749

原创 94.二叉树的中序遍历

而在中序遍历中,首先访问根节点,但是不记录,然后访问左子节点,当访问的节点没有左子节点时,才从栈中弹出一个节点并记录,然后转向右子节点。在前序遍历中,首先访问根节点,记录根节点然后访问左子节点,符合前序遍历 中左右的顺序。最重要的区别是访问节点和记录节点的时间。

2024-01-21 16:50:05 301

原创 144.二叉树的前序遍历

【代码】144.二叉树的前序遍历。

2024-01-21 11:37:29 510

原创 347.前 K 个高频元素

首先用map记录每个value出现的频次key,然后倒入数组中,以key进行sort排序,然后再返回前k个value。

2024-01-19 17:25:25 372

原创 239. 滑动窗口最大值

/ 滑动窗口内的元素// 要弹走的元素就是滑动窗口内的最大元素if (!// 从后往前,因为滑动窗口后面的元素肯定小于前面的元素while (!// 不保持滑动窗口的大小,而是保持滑动窗口最左边的数是最大的// result的索引// 自定义队列// 将前k个元素放入队列i < k;i++) {i++) {// 滑动窗口移除最前面的元素,判断该元素是否放入队列维护滑动窗口内左边始终是最大值,保证滑动窗口内的元素由大到小。

2024-01-19 12:04:50 354

原创 1047. 删除字符串中的所有相邻重复项

原地操作,双指针发,之前也用过这种思路,快指针操作String s,慢指针操作新字符串。这里需要注意的是慢指针指向的是新字符串的下一个位置,在循环一开始,先把这个位置尝试填上字符,如果可以消掉,那慢指针后退一步。本质上,String是一个不可变字符串,每一次对String操作的过程都是重新创建一个String字符串的过程。我的解分为两部分,第一部分是入栈匹配,第二个部分是出栈转为结果字符串。String初始化可以指定字符数组的索引String(ch, 0, slow),[0,slow).

2024-01-05 11:57:19 403

原创 225. 用队列实现栈

栈和队列的实现和增删查的函数是什么。

2024-01-04 12:06:37 341

原创 232.用栈实现队列

在出栈的时候如果stackOut中有元素,则直接可以弹出;如果没有就把所有的stackIn元素倒入stackOut。这样的话进栈的时候直接压入stackIn就可以。

2024-01-03 11:14:24 348

原创 541. 反转字符串II

取最小值 Math.min()

2024-01-02 17:44:51 312

原创 第18题. 四数之和

剪枝也是一个重要的问题,target如果是负数,那么还需要判断nums[i]是不是大于0,这种情况才可以剪枝。为什么使用双指针法而不是哈希表?

2024-01-02 11:36:50 336

原创 第15题. 三数之和

对于left和right向中间靠拢的过程中要保证,如果一个数已经在第二个位置出现过,那left应该向后移动保证这个数不再出现第二次。因为第一个位置固定,第二个位置的数如果一样,三元组就是一样的。对于第一个位置,去重需要在遍历时保证,如果这个数已经在三元组的第一个位置出现过,就没有必要再出现第二次。由于 Arrays.asList() 返回的列表是基于数组的,因此它的长度是固定的,不能被修改。首先遍历三元组的第一个位置,然后使用双指针法,找到后面两个位置。双指针法的使用前提是数组是有序的。

2024-01-01 21:53:42 394

原创 383. 赎金信

【代码】383. 赎金信。

2023-12-29 11:27:36 350

原创 454题.四数相加II

注意map的方法怎么使用,比如get()、put()、contains()的传参和返回值。如果调用put()查找map中没有的Key,返回的是null。

2023-12-29 11:05:01 362

原创 1. 两数之和

【代码】1. 两数之和。

2023-12-29 11:01:50 317

原创 349. 两个数组的交集

【代码】349. 两个数组的交集。

2023-12-28 12:01:09 354

原创 142.环形链表II

【代码】142.环形链表II。

2023-12-28 10:41:07 360 1

原创 面试题 02.07. 链表相交

【代码】面试题 02.07. 链表相交。

2023-12-27 14:18:57 327

原创 19.删除链表的倒数第N个节点

【代码】19.删除链表的倒数第N个节点。

2023-12-27 13:17:13 316

原创 24. 两两交换链表中的节点

【代码】24. 两两交换链表中的节点。

2023-12-27 12:59:25 311

原创 206.翻转链表

每次循环或者迭代只翻转一个指针。要把反转之后的头节点找到。

2023-12-26 10:26:46 334

原创 59.螺旋矩阵

但是还是一直被卡,边界问题要注意。

2023-12-24 22:14:08 370

原创 209.长度最小的子数组

官方代码是遍历right指针,我觉得和我写的不分伯仲。right指针向后移动之后,sum再+不断的调节子序列的起始位置和终止位置。left指针移动之前,sum就-

2023-12-24 10:55:28 332

原创 977.有序数组的平方

在判断使用left填充还是right填充的时候,可以不用先平方再判断,而是先判断再平方。

2023-12-23 22:00:18 326

原创 27.移除元素

我的想法局限在了如何遍历完旧数组,而没有想到其实遍历构建新数组更好。快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组。慢指针:指向更新 新数组下标的位置。以将要构建的新数组为中心来写代码。

2023-12-23 20:26:46 332

原创 704. 二分查找

代码随想录

2023-12-22 09:51:16 356

原创 vscode连不上网

强烈建议把电脑管家退了,改成NAT试试

2021-03-24 20:06:38 797

原创 【元素选择器】

题意:思路:代码:#include<iostream>#include<string>using namespace std;struct node{ string s; string bq;//标签属性 bool if_id; string id;//id属性 int father; int level;//两个点一级,四个点两级 void deal() { int len = s.size(); int f = 0; for

2020-07-11 20:13:21 275

原创 【炉石传说】

题意:《炉石传说:魔兽英雄传》(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行,由两名玩家轮流进行操作,本题所使用的炉石传说游戏的简化规则如下: * 玩家会控制一些角色,每个角色有自己的生命值和攻击力。当生命值小于等于 0 时,该角色死亡。角色分为英雄和随从。  * 玩家各控制一个英雄,游戏开始时,英雄的生命值为 30,攻击力为 0。当英雄死亡时,游戏结束,英雄未死亡的一方获胜。  * 玩家

2020-07-11 19:56:39 116

原创 【宇宙狗的危机】

题意:这棵树是一颗二叉搜索树,同时任意树边相连的两个节点的gcd(greatest common divisor)都超过1。思路:这是一道区间dp的问题。以L[i][j]表示从i到j可以组成一个二叉搜索树,R[i][j]同理。对于一个区间,遍历其中所有点作为root,因为只有其中有一个点作为root时可以让这个区间构成二叉搜索树,则该区间就是有效的。转移方程是如果gcd[i-1][root]>1,则L[i-1][j]就是有效的,同理如果gcd[root][j+1]>1,则R[i][j

2020-06-10 12:03:49 90

原创 【ZJM要抵御宇宙射线】

题意:假设宇宙射线的发射点位于一个平面,ZJM已经通过特殊手段获取了所有宇宙射线的发射点,他们的坐标都是整数。而ZJM要构 造一个保护罩,这个保护罩是一个圆形,中心位于一个宇宙射线的发射点上。做一个最小面积的保护罩。思路:给所有点按照输出大小顺序排序,计算以每个点为圆心的保护罩的半径平方,找最小的。首先数据范围要求long long,并且所求为半径平方,注意!!!代码:#include<iostream>#include<algorithm>#include&

2020-06-10 11:50:36 121

原创 【TT数鸭子】

题意:每一只鸭子都不 一样,或羽毛不同,或性格不同。TT在脑子里开了一个map<鸭子,整数> tong,把鸭子变成了 一些数字。现在他好奇,有多少只鸭子映射成的数的数位中不同的数字个数小于k。思路:计算每一只鸭子对应的数值的数位中不同的数字的个数,然后与k比较,最后累加。代码:#include<stdio.h>using namespace std;int solve(long long a, int k){ int b[10]; for (int i = 0

2020-06-10 11:46:20 452

原创 【A - 猫睡觉问题】

题意:众所周知,TT家里有一只魔法喵。这只喵十分嗜睡。一睡就没有白天黑夜。喵喵一天可以睡多次!!每次想睡多久就睡多久╭(╯^╰)╮喵睡觉的时段是连续的,即一旦喵喵开始睡觉了,就不能被打扰,不然喵会咬人哒[○・`Д´・ ○]可以假设喵喵必须要睡眠连续不少于 A 个小时,即一旦喵喵开始睡觉了,至少连续 A 个小时内(即A*60分钟内)不能被打扰!现在你知道喵喵很嗜睡了,它一天的时长都在吃、喝、拉、撒、睡,换句话说要么睡要么醒着滴!众所周知,这只魔法喵很懒,和TT一样懒,它不能连续活动超过 B 个小时

2020-06-05 00:14:52 136

原创 【B - 东东转魔方】

题意:东东有一个二阶魔方,即2×2×2的一个立方体组。立方体由八个角组成。魔方的每一块都用三维坐标(h, k, l)标记,其中h, k, l∈{0,1}。六个面的每一个都有四个小面,每个小面都有一个正整数。对于每一步,东东可以选择一个特定的面,并把此面顺时针或逆时针转90度。请你判断,是否东东可以在一个步骤还原这个魔方(每个面没有异色)。思路:首先判断是否本身就是一个没有异色的模仿,如果不是的话,判断是需要怎么进行旋转,有三种大方向:上下,前后,左右,每个大方向有两个方向,判断旋转之后是否

2020-06-04 23:55:19 116

原创 【C - 拿数问题 II】

题意:给一个序列,里边有 n 个数,每一步能拿走一个数,比如拿第 i 个数, Ai = x,得到相应的分数 x,但拿掉这个 Ai 后,x+1 和 x-1 (如果有 Aj = x+1 或 Aj = x-1 存在) 就会变得不可拿(但是有 Aj = x 的话可以继续拿这个 x)。求最大分数。思路:首先我们用a数组来记录输入的数的个数,同时记录数的最大值和最小值。f[i]=max(f[i-1]f[i-2]+i*a[i]),最后输出一个最大分数.代码:#include<iostream&g

2020-06-04 23:50:05 127

原创 【B - LIS & LCS】

题意:东东有两个序列A和B。他想要知道序列A的LIS和序列AB的LCS的长度。注意,LIS为严格递增的,即a1<a2<…<ak(ai<=1,000,000,000)。思路:求LIS(最长上升子序列),使用两个for循环,一个用来遍历序列中的所有元素,一个用来遍历序列中这个元素之前的所有元素。以i为最大元素的子序列的最大长度,是所有以j为最大元素的子序列长度+1的最大值,两个循环之后,LIS就是所有最大长度的最大值。求LCS(最长公共子序列)时,:假设 f[i][j]

2020-06-04 23:44:32 214

原创 【C - 班长竞选】

题意:大学班级选班长,N 个同学均可以发表意见 若意见为 A B 则表示 A 认为 B 合适,意见具有传递性,即 A 认为 B 合适,B 认为 C 合适,则 A 也认为 C 合适 勤劳的 TT 收集了M条意见,想要知道最高票数,并给出一份候选人名单,即所有得票最多的同学。思路:从图中找出所有强连通分量进行缩点,那么首先某一个强连通分量中的人获得了该强连通分量中节点数目减一得票数。他们还会获得其他与之相连的强连通分量的票数。计算出每个节点对应的连通分量:利用dfs计算出图的后序序列,根据逆后序序

2020-06-04 23:35:40 608

空空如也

空空如也

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

TA关注的人

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