一起学习交流~

最新发布 第4页

编程学习

算法

图-03-最短路径

图-03-最短路径
最短路径 在带权图中,从一个点到其它顶点的经过的最小权重就是最短路径 使用以下四种方式求最短路径 folyd,bellmanford,spfa,dijkstra 题目 力扣的743题网络延迟时间 https://leetcode-cn.com/problems/network-delay-time/ folyd 也叫插点法,复杂度最高,n^3 需要使用邻接矩阵的方式 三层循环分为中转点,起点,终点,依次枚举 推荐用于……继续阅读 »

laomuji 7个月前 (03-01) 370浏览 0评论 1个赞

算法

图-02-拓扑排序

图-02-拓扑排序
拓扑排序 一般用于解决先做什么,后做什么的问题,比如B依赖于A,那么必须先完成A才能完成B 拓扑排序需要用到inDegree(入度)的概念 如图所示: 拓扑排序的结果不一定是唯一的,只要符合条件就行 例题 比如力扣207题和210题的课程表 https://leetcode-cn.com/problems/course-schedule-ii/ 测试数据: 输入:numCourses = 4, prerequisi……继续阅读 »

laomuji 7个月前 (03-01) 326浏览 0评论 0个赞

算法

图-01-图的基本概念

图-01-图的基本概念
图的常用类型 无向图: A连接B B也连接A 有向图: A连接B B不连接A 混合图: 既有无向图也有有向图 以上三种图,一般都用有向图表示,因为无向图和混合图都可以通过有向图形成 带权图: 边拥有权重 图的常用术语 顶点:相当于节点,一般叫做vertex 边:两个顶点相连的线称作为边,一般叫做edge 路径:从一个顶点到另一个顶点经过所有点的集合,一般称path 环:A连接B,B连接C,C连接A,此时就形成了环 负……继续阅读 »

laomuji 7个月前 (03-01) 308浏览 0评论 0个赞

算法

线段树

线段树
什么是线段树 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩。 构造线段树 区间求和查询 节点修改 代码 #include<iostream> using……继续阅读 »

laomuji 8个月前 (02-12) 444浏览 0评论 0个赞

算法

最佳买卖股票时机含冷冻期-dp三种情况

最佳买卖股票时机含冷冻期-dp三种情况
题目 给定一个整数数组prices,其中第  prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: prices = [1,2,3,0,2] 输出: 3 解释: 对应的……继续阅读 »

laomuji 8个月前 (02-05) 316浏览 0评论 0个赞

算法

乘积为正数的最长子数组长度-dp两种情况

乘积为正数的最长子数组长度-dp两种情况
题目 给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示例  1: 输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。 示例 2: 输入:nums = [0,1,-2,-3,-4] 输出:3 解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积……继续阅读 »

laomuji 8个月前 (02-02) 352浏览 0评论 0个赞

算法

乘积最大子数组-dp两种情况

乘积最大子数组-dp两种情况
题目 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 来源:力扣(LeetCode) 链接:https://leetcode-c……继续阅读 »

laomuji 8个月前 (02-02) 326浏览 0评论 0个赞

算法

环形子数组的最大和-dp解

环形子数组的最大和-dp解
题目 给定一个由整数数组 A 表示的环形数组 C,求 C 的非空子数组的最大可能和。 在此处,环形数组意味着数组的末端将会与开头相连呈环状。(形式上,当0 <= i < A.length 时 C[i] = A[i],且当 i >= 0 时 C[i+A.length] = C[i]) 此外,子数组最多只能包含固定缓冲区 A 中的每个元素一次。(形式上,对于子数组 C[i], C[i+1], ̷……继续阅读 »

laomuji 8个月前 (01-30) 356浏览 0评论 0个赞

算法

单词搜索-DFS入门

单词搜索-DFS入门
题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例 1: 输入:board = [["A","B","C&qu……继续阅读 »

laomuji 8个月前 (01-28) 464浏览 0评论 1个赞

算法

删除并获得点数-打家劫舍

删除并获得点数-打家劫舍
题目 给你一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] – 1 和 nums[i] + 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。 示例 1: 输入:nums = [3,4,2] 输出:6 解释: 删除 4 获得 4 个点数,因此 3 也被删……继续阅读 »

laomuji 8个月前 (01-27) 369浏览 0评论 0个赞