算法
文章平均质量分 50
Jargos
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
力扣股神之路动态规划
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 =6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1原创 2021-11-03 14:50:08 · 292 阅读 · 0 评论 -
力扣1014.观光组合
给你一个正整数数组 values,其中 values[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的 距离 为 j - i。一对景点(i < j)组成的观光组合的得分为 values[i] + values[j] + i - j ,也就是景点的评分之和 减去 它们两者之间的距离。返回一对观光景点能取得的最高分。示例 1:输入:values = [8,1,5,2,6] 输出:11 解释:i = 0, j = 2, values[i] + values[j] +i - j原创 2021-11-03 11:19:22 · 291 阅读 · 0 评论 -
152. 乘积最大子数组
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。通过次数190,778 提交次数452,585思路本题与最大自序和类似,若都是正数,则可直接得到状态转移方程dp[i] = max(dp[i - 1] * d原创 2021-10-28 16:22:04 · 343 阅读 · 0 评论 -
力扣918. 环形子数组的最大和
给定一个由整数数组 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], …, C[j],不存在 i <= k1, k2 <= j 其中 k1 % A.length =原创 2021-10-23 19:04:56 · 241 阅读 · 0 评论 -
力扣55.45, 跳跃游戏1,2
跳跃游戏 II给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4] 输出:false 解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 ,所以永远不可原创 2021-10-22 10:42:45 · 136 阅读 · 0 评论 -
力扣53. 最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1] 输出:1示例 3:输入:nums = [0] 输出:0示例 4:输入:nums = [-1] 输出:-1示例 5:输入:nums = [-100000] 输出:-100000提示:原创 2021-10-22 10:23:32 · 122 阅读 · 0 评论 -
力扣740. 删除并获得点数
删除并获得点数给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入:nums = [3,4,2] 输出:6 解释: 删除 4 获得 4 个点数,因此 3 也被删除。 之后,删除 2 获得 2个点数。总共获得 6 个点数。示例 2:输入:num原创 2021-10-21 21:01:48 · 208 阅读 · 0 评论 -
力扣打家劫舍1,2,3
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,7,9原创 2021-10-20 20:33:47 · 142 阅读 · 0 评论 -
图的深度优先遍历实现两点间所有路径
邻接矩阵实现的图的深度优先遍历图的深度优先遍历Graph类测试类Test项目实际应用Graph类Controller每次新增一条通道都将其插入到邻接矩阵表中图的深度优先遍历公司有业务要实现管线的自动排布,输入起止点,返回其之间所有路径及其长度。将其抽象成了一张带权图,使用深度优先遍历完成Graph类public class Graph { private ArrayList<String> vertexList; //顶点列表 private int[][] edge原创 2021-09-24 15:31:17 · 957 阅读 · 0 评论 -
几种排序算法python实现
归并排序python实现def hebing(arr,l,mid,r): n1 = mid - l + 1 n2 = r - mid left = [0] * n1 right = [0] * n2 for i in range(0,n1): left[i] = arr[i + l] for j in range(0,n2): right[j] = arr[mid + j + 1] i = 0 j = 0原创 2021-09-12 19:10:14 · 105 阅读 · 0 评论
分享