自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(231)
  • 收藏
  • 关注

原创 中兴一面记录

整体50分钟, 三个面试官轮流提问自我介绍项目展开,项目背景,具体工作,ARP工作原理 能否跨子网广播?为什么?C++八股1 指针和引用的区别2 类型安全,初始化int, 传入4.0 行不行? 不行3 左值和右值的区别, const形参,传右值进去行不行4 组合和继承,各自优缺点5 用过共享指针吗,有没有遇到什么困难,自己实现共享指针,需要怎么做6 vector相邻元素存储地址连续吗,删除元素后,vector容量大小变化吗,怎么修改容量vector大小7 map和unordered_m

2024-09-14 15:34:07 216

原创 LRU缓存-力扣

【代码】LRU缓存-力扣。

2024-08-20 15:21:58 249

原创 腐烂的橘子-力扣

使用BFS来解决,保存一个腐烂的橘子队列并记录新鲜橘子的数目,对每个腐烂橘子从四个方向进行查找,如果是新鲜的橘子,就将其变为腐烂,加入队列。当新鲜橘子数组为0时,直接返回。

2024-08-20 10:48:23 190

原创 岛屿数量-力扣

【代码】岛屿数量-力扣。

2024-08-19 11:24:22 154

原创 二叉树展开为链表

题目需要将二叉树按照先序遍历的顺序展开为链表,那么就按照相反的顺序 右左中 对二叉树进行原地操作。

2024-08-19 11:10:23 126

原创 乘积最大子数组

局部变量使用double是因为测试用例[0,10,10,10,10,10,10,10,10,10,-10,10,10,10,10,10,10,10,10,10,0]

2024-08-17 15:02:45 86

原创 下一个排列-力扣

【代码】下一个排列-力扣。

2024-08-17 14:25:13 112

原创 颜色分类-力扣

/ 2. 保持(right, nums.size() - 1]为2。// 如果做到以上两点, [left, right]必为1。// 1. 保持[0, left)为0。

2024-08-17 13:48:59 82

原创 括号生成-力扣

【代码】括号生成-力扣。

2024-08-17 13:21:22 371

原创 合并K个升序链表-力扣

【代码】合并K个升序链表-力扣。

2024-08-15 15:57:03 222

原创 排序链表-力扣

对链表进行归并排序,两个链表的合并可以借用 合并两个有序链表。

2024-08-15 15:29:58 84

原创 寻找重复数

参考环形链表Ⅱ,将数组建立类似的映射关系。

2024-08-13 11:40:53 101

原创 杨辉三角(对vector resize)

【代码】杨辉三角(对vector resize)

2024-08-13 11:14:39 98

原创 搜索二维矩阵

这道题乍一看,和做过的搜索二维矩阵Ⅱ类似,用之前的代码也能通过,但忽略掉了每行的第一个整数大于前一行的最后一个整数这个条件。可以使用两次二分法来解决这道题目。

2024-08-12 23:27:56 281

原创 最小路径和

【代码】最小路径和。

2024-08-12 21:12:43 106

原创 单词搜索-力扣

【代码】单词 搜索。

2024-07-24 16:25:08 102

原创 二叉树的直径

【代码】二叉树的直径。

2024-07-24 15:53:57 219

原创 合并两个有序链表

【代码】排序 链表。

2024-07-24 11:08:18 279

原创 随机链表的复制

使用哈希表来保存每个节点对应的新节点的地址,先进行一遍遍历创建random都为0的链表,然后根据哈希表对复制链表节点的random进行赋值。

2024-07-23 19:16:22 107

原创 K个一组翻转链表

【代码】K个一组翻转链表。

2024-07-23 17:16:36 409

原创 环形链表-力扣

采用快慢指针,如果链表存在环,则快慢指针一定会相遇。

2024-07-18 15:17:19 460

原创 回文链表-链表

暴力解法复制一个新的链表出来并将其反转,然后挨个元素进行比较。比较是否是回文链表,实际上是在比较链表节点 val 的值是否相等,那么只需遍历一次链表,将其val存放在数组中,然后去判断这个数组是否回文。上述的写法都需要额外的空间来存放val,其实判断是否回文,只需要判断链表的前半部分和后半部分是否相等,那么只需要将链表的后半部分反转,然后依次进行比较,这样就不必花费额外的空间。可以使用快慢指针的方法找到链表后半部分的头节点。

2024-07-18 14:57:25 168

原创 搜索二维矩阵Ⅱ

【代码】搜索二维矩阵Ⅱ。

2024-07-17 16:35:26 84

原创 两数相加-力扣

【代码】两数 相加。

2024-07-17 16:07:22 113

原创 旋转图像-力扣

首选对矩阵进行转置,然后首尾列交换顺序,直到中间列。

2024-07-17 15:33:52 116

原创 数组中的第K个最大元素

【代码】数组中的第K个最大元素。

2024-07-16 20:53:31 92

原创 矩阵置零-力扣

【代码】矩 阵 置 零。

2024-07-16 19:50:04 198

原创 缺失的第一个正数

将数组中所有小于等于0的数都置为 N + 1, 遍历数组,将此时将 nums[i] - 1 的下标对应的值变为负数,那么从前往后遍历到的第一个正数的下标,便是缺失的第一个正数。如果数组的数都是负数,说明数组中出现的正数恰好是 1 - N, 那么N + 1 便是我们需要找的数。

2024-07-16 19:35:32 469

原创 除自身以外数组的乘积

【代码】除自身以外数组的乘积。

2024-07-15 17:05:58 395

原创 最小覆盖子串

【代码】最小覆盖子串。

2024-07-12 16:48:27 271

原创 轮转数组-力扣

【代码】轮转 数组。

2024-07-11 17:41:33 106

原创 无重复字符的最长子串

【代码】无重复字符的最长子串。

2024-07-11 17:26:41 284

原创 盛最多水的容器

【代码】盛最多水的容器。

2024-07-11 16:37:19 453

原创 最长连续子序列

采用set对数组nums元素去重,然后遍历set元素,判断元素是否是连续序列的起始元素。如果是,则计算该元素起始序列的长度。因此set中每个元素只会被遍历一次。

2024-07-10 10:52:59 89

原创 小明逛公园-(Floyd 算法)

从递推公式:grid[i][j][k] = min(grid[i][k][k - 1] + grid[k][j][k - 1], grid[i][j][k - 1]) 可以看出,我们需要三个for循环,分别遍历i,j 和k。那么我们只需要记录 grid[i][j][1] 和 grid[i][j][0] 就好,之后就是 grid[i][j][1] 和 grid[i][j][0] 交替滚动。– 节点i 到 节点j 的最短路径不经过节点k,grid[i][j][k] = grid[i][j][k - 1]

2024-07-09 20:42:55 918

原创 城市间货物运输Ⅲ-卡玛(Bellman_ford之单源有限最短路)

题目要求最多经过 k 个城市的条件下,而不是一定经过k个城市,也可以经过的城市数量比k小,但要最短的路径。对所有边松弛一次,相当于计算 起点到达 与起点一条边相连的节点 的最短距离。那么经过 k 个城市,则共计 k + 1条边,那么最多需要松弛 k + 1次。使用队列优化后的 Bellman_ford 算法,关键在于 如何控制松弛 k 次,可以用一个变量 que_size 记录每一轮松弛入队列的所有节点数量。下一轮松弛的时候,就把队列里 que_size 个节点都弹出来,就是上一轮松弛入队列的节点。

2024-07-09 15:57:38 374

原创 城市间货物运输Ⅱ-卡玛(Bellman_ford之判断负权回路)

如果是队列优化过的 Bellman_ford 算法,在极端情况下,即:所有节点都与其他节点相连,每个节点的入度为 n-1 (n为节点数量),所以每个节点最多加入 n-1 次队列。利用一个数组来记录每个节点的出现次数,如果某个节点出现次数超过了 n - 1次,就说明该图存在负权回路。Bellman_ford算法最多对每条边进行 n - 1 次松弛,n 为图中节点个数,就可以得到从源点到 n 的最短路径,那么对每条边进行第 n - 1次松弛,如果 minDist 数组还会更新的话,那么就说明图中存在负权回路。

2024-07-09 14:28:51 198

原创 城市间货物运输Ⅰ-卡玛(Bellman_ford 队列优化算法(SPFA))

Bellman_ford 算法每次松弛 都是对所有边进行松弛,但真正有效的松弛,是基于已经计算过的节点在做的松弛,所以 Bellman_ford 算法 每次都是对所有边进行松弛,其实是多做了一些无用功。一般来说,SPFA 的时间复杂度为 O(K * N) K 为不定值,因为 节点需要计入几次队列取决于 图的稠密度。如果图是一条线形图且单向的话,每个节点的入度为1,那么只需要加入一次队列,这样时间复杂度就是 O(N)。实际上 只需要对 上一次松弛的时候更新过的节点作为出发节点所连接的边 进行松弛就够了。

2024-07-09 11:54:39 326

原创 城市间货物运输Ⅰ-卡玛(Bellman_ford)

本题是经典的带负权值的单源最短路问题,Dijkstra 求单源最短路问题的前提是图中的边无负权重。当图中的边存在负权重时,就需要使用 Bellman_ford 算法来进行求解了。Bellman_ford算法的核心思想是 对所有边进行松弛n-1次操作(n为节点数量),从而求得目标最短路。本篇学习了代码随想录。

2024-07-09 11:01:40 375

原创 参加科学大会-卡玛(堆优化版Dijkstra)

与 Prim 类似,当节点数目较多,边的数量很小的时候(稀疏图),可以考虑从边的角度来求最短路,邻接矩阵遇到稀疏图,会导致申请过大的二维数组造成空间浪费 且遍历 边 的时候需要遍历整个n * n矩阵,造成时间浪费。而在朴素版Dijkstra中,需要一个for循环来遍历节点,并找出未访问节点,然后对每个为访问节点更新minDist数组,即源点到为访问节点的最小权重。如果采取小顶堆来存放边,并按照边权重的大小进行排序,那么我们每次从堆中取出的边便是权重最小的边,那么就无须花费两层for循环来寻找最近的节点了。

2024-07-08 22:03:53 692

空空如也

空空如也

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

TA关注的人

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