结构与算法

橘颂TA8 天前
算法·leetcode·职场和发展·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 1162 题:地图分析思路:使用多源 BFS 算法1)先创建一个二维数组来统计距离,再标记陆地的距离为 0,此时把陆地的坐标入队列
橘颂TA9 天前
数据结构·c++·算法·leetcode·职场和发展·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 1020 题:飞地的数量思路:使用 BFS 算法先处理边界 1 ,再使用 BFS 统计陆地,体现正难则反的思想;例如:1)创建一个二维数组来专门标记是否入过队列或者说遍历过;
橘颂TA9 天前
算法·leetcode·职场和发展·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 1765 题:地图中的最高点思路:创建一个二维数组初始化为 -1,使用 BFS 算法先放置水域的高度,再放置非水域的高度;1)创建二维数组,作用:1.最终答案、2.防止遍历过
橘颂TA10 天前
数据结构·c++·算法·leetcode·职场和发展·哈希算法·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 542 .01 题:矩阵思路:正难则反的使用 BFS例如:如果我们站在从 1 找 0 的思路就会导致我们写 BFS 是入队列的值超级答,所以我们站在从 0 找 1 的角度来解决这道题,为什么?既然从 1 能找 0 ,那么也能从 0 找到 1;
橘颂TA12 天前
linux·运维·网络·tcp/ip·算法·职场和发展·结构与算法
【Linux 网络】TCP 拥塞控制与异常处理:从原理到实践的深度剖析少量丢包——重传就行大量丢包——OS判定网络拥塞一旦网络拥塞,所有主机要不发或者减少数据发送,不是直接重传,因为一旦重传,所有主机都重传,导致网络更加拥堵;所以所有主机要么不发、等等再发、减少数据发送,这时因为 TCP 构建了全网内所有主机的面对拥塞的共识,因为大家都用的是 TCP 协议;
橘颂TA15 天前
数据结构·算法·c·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 675 题:为高尔夫比赛砍树思路:BFS 算法1)找到图中不是0,1值,用个二维数组来存储他们的下标2)排序,根据下标对应的值的大小升序
橘颂TA17 天前
c++·算法·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 1926 题:迷宫中离入口最近的出口思路:BFS 算法我们看到上面这张图片,求 A 到 E 的最短路径,此时我们可以使用一个队列来实现层序遍历来实现 BFS 算法,我们先把 A 入队列,假设两点之间的距离都为 1,所以此时队列情况:
橘颂TA18 天前
算法·leetcode·职场和发展·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 130 题:被围绕的区域1)处理边缘 'O',防止干扰微软 'O' :2)使用层序遍历查找中间的使用的 'O' 并且让他变成 '1':
橘颂TA20 天前
网络·算法·leetcode·哈希算法·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 692 题:前 K 个高频单词思路:建立 k 个节点的小根堆原因:通过不断的入让数据入堆,导致大的数据沉底,如果节点大于 k 个,把堆顶的数据出堆,此时出的就是小的值,不断出,不断的入,导致最后留在堆的元素是前 k 个大的数据;
橘颂TA20 天前
算法·结构与算法
【剑斩OFFER】算法的暴力美学——LeetCode 295 题:数据流的中位数思路:建立大小堆如果这个数组是有序的,那么把他们的前半部分放到大根堆,后半部分放到小根堆,那么他们的中间值就是如果这两个堆的节点加起来是偶数,那么两个堆顶加起来 / 2 就行,那么如果是奇数那么返回大根堆的堆顶元素就行;
橘颂TA21 天前
linux·运维·服务器·网络·tcp·结构与算法·序列化和反序列
【Linux 网络】应用层自定义协议和序列化既然 Tcp 是面向字节流的,所以我们可以使用 write 和 read 系统调用来进行读写。那么 write 和 read 对在使用 Tcp 方式通信时,会有 bug:
橘颂TA21 天前
网络·算法·结构与算法
【剑斩OFFER】算法的暴力美学——LeetCode 703 题:数据流中的第 K 大元素思路:维护 k 个节点的小根堆例如:
橘颂TA22 天前
c++·算法·结构与算法
【剑斩OFFER】算法的暴力美学——leetCode 662 题:二叉树最大宽度思路:使用队列实现层序遍历 + 让节点绑定一个下标 pair< TreeNode* , unsigned int>
橘颂TA23 天前
算法·leetcode·结构与算法
【剑斩OFFER】算法的暴力美学——leetCode 103 题:二叉树的锯齿形层序遍历思路:在层序遍历的基础上添加一个标志位。层序遍历的算法实现:https://blog.csdn.net/2403_84958571/article/details/156873549?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
橘颂TA1 个月前
数据结构·c++·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 394 题:字符串解码思路:使用双栈,一个栈原来存储字符串,另外一个存储整型数字;1)一开始,把 string 栈先放个空字符串进去,方便后面操作;
橘颂TA1 个月前
c++·算法·leetcode·职场和发展·结构与算法
【剑斩OFFER】算法的暴力美学——leetCode 946 题:验证栈序列思路:使用栈结构来模式出栈和入栈以 pushed = [1,2,3,4,5],popped = [4,5,3,2,1] 为例。
橘颂TA1 个月前
数据结构·c++·算法·力扣·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 844 题:比较含退格的字符串思路:使用 string 模拟栈遍历字符串,如果字符等于 '#' 并且栈里面有数据,那么就让栈顶元素出栈,如果字符 != ‘#’ 就入栈,直到遍历完整个字符串。
橘颂TA1 个月前
算法·leetcode·哈希算法·散列表·结构与算法
【剑斩OFFER】算法的暴力美学——二进制求和思路:小学生加法运算把逢十进一,改成逢二进一:
橘颂TA1 个月前
数据结构·算法·leetcode·职场和发展·哈希算法·结构与算法
【剑斩OFFER】算法的暴力美学——力扣 43 题:字符串相乘思路:无进位相乘首先我们先把两个字符串进行逆序:然后开辟一个数组,这个数组的大小为:两个字符串的长度 - 1,原因:假设是三位数乘以三位数,那么这个三位数的最大值位:999 * 999 :
橘颂TA1 个月前
算法·leetcode·哈希算法·散列表·结构与算法
【剑斩OFFER】算法的暴力美学——存在重复元素Ⅱ思路:哈希表使用 unordered_map<int,int> 来存储值和对应的下标,这道题目跟之前那道存储重复元素差不多,我们先遍历数组,在把数组里面的元素放到哈希表之前,我们先判断这个元素是否存在于哈希表中,如果存在,我们就要判断这个值的下标和当前值的下标相减是否 <= k ,如果符合这个条件,返回 true,不符合就把这个元素入哈希表中,那么这个有个问题,就是如果当前元素在之前遍历数组的时候已经入哈希了,都是不符合题目下标相减大于k,那么我们也是要把当前值入哈希的,而且入哈希之后,之前那个值就会被覆