初级算法
文章平均质量分 57
蜂蜜柚子茶×
去见你的路上,连风都是甜的
展开
-
Leecode88.合并两个有序数组(不使用额外数组)双指针算法详解及优化
合并两个有序数组(不使用额外数组)双指针,看不懂找我原创 2022-11-03 12:28:33 · 242 阅读 · 1 评论 -
Leecode738.单调递增的数字-贪心算法详细思路及扩展
利用贪心算法解决单调递增的数字原创 2022-10-28 16:59:10 · 144 阅读 · 0 评论 -
Leecode135.分发糖果-贪心算法思路详解及最优扩展
贪心算法教会你巧解分发糖果原创 2022-10-28 16:22:00 · 201 阅读 · 0 评论 -
Leecode413等差数列划分-动态规划详细算法思路
这个做法的时间复杂度是 O(n^2) 的,即枚举最后两项的时间复杂度为 O(n)O(n),使用指针 jj 遍历的时间复杂度也为 O(n)O(n),相乘得到总时间复杂度 O(n^2)对于一些运行较慢的语言,该方法可能会超出时间限制,因此我们需要进行优化。如果 nums[i]−nums[i+1]=d,那么在这一轮遍历中,j 会遍历到与上一轮相同的位置,答案增加的次数相同,并且额外多出了nums[i−1],nums[i],nums[i+1] 这一个等差数列,因此有:t_{i+1} = t_i + 1。原创 2022-10-25 17:06:32 · 106 阅读 · 0 评论 -
Leecode64.最小路径和-动态规划详细思路及题解
给定一个包含非负整数的*m* x *n*网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。**说明:**每次只能向下或者向右移动一步。原创 2022-10-25 16:58:13 · 100 阅读 · 0 评论 -
Leecode27. 移除元素-双指针详细算法思路
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。原创 2022-10-22 21:53:08 · 102 阅读 · 0 评论 -
Leecode518.零钱兑换Ⅱ动态规划之完全背包详细算法思路
输入: amount = 5, coins = [1, 2, 5] 输出: 4 解释: 有四种方式可以凑成总金额: 5=5 5=2+2+1 5=2+1+1+1 5=1+1+1+1+1。dp[j] (考虑coins[i]的组合总和) 就是所有的dp[j - coins[i]](不考虑coins[i])相加。下标非0的dp[j]初始化为0,这样累计加dp[j - coins[i]]的时候才不会影响真正的dp[j]背包容量的每一个值,都是经过 1 和 5 的计算,包含了{1, 5} 和 {5, 1}两种情况。原创 2022-10-20 20:59:13 · 166 阅读 · 0 评论 -
Leecode474.一和零 动态规划之01背包详细算法思路
最多有 5 个 0 和 3 个 1 的最大子集是 {“10”,“0001”,“1”,“0”} ,因此答案是 4。示例 2: 输入:strs = [“10”, “0”, “1”], m = 1, n = 1 输出:2 解释:最大的子集是 {“0”, “1”} ,所以答案是 2。输入:strs = [“10”, “0001”, “111001”, “1”, “0”], m = 5, n = 3 输出:4。以输入:[“10”,“0001”,“111001”,“1”,“0”],m = 3,n = 3为例。原创 2022-10-20 20:49:50 · 80 阅读 · 0 评论 -
leecode416.分割等和子集-动态规划详细题解及算法思路
动态规划之01背包问题原创 2022-10-20 16:46:29 · 258 阅读 · 0 评论 -
Leecode1049.最后一块石头的重量-动态规划详细题解及算法思路
有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x原创 2022-10-20 16:43:48 · 483 阅读 · 0 评论 -
DFS深度优先搜索算法详解
【代码】DFS深度优先搜索算法详解。原创 2022-10-19 21:31:55 · 300 阅读 · 1 评论 -
Leecode1014.最佳观光组合 详细题解及算法思路
题目:一对景点(i < j)组成的观光组合的得分为 values[i] + values[j] + i - j ,那么得分取决与 values[i]+i与values[j]-j的和,解释:i = 0, j = 2, values[i] + values[j] + i - j = 8 + 5 + 0 - 2 = 11。确定dp数组的定义:该位置的values[i]+i的值。输入:values = [8,1,5,2,6]输入:values = [1,2]找出dp数组的递推公式。原创 2022-10-18 20:23:03 · 98 阅读 · 0 评论 -
Leecode1567.乘积为正数的最长子数组长度详细题解及算法思路
判断的情况比较复杂,可以跳出往常思维,使用两个dp数组,分别记录前i-1乘积为正数,前i-1成绩为负数的情况,可以发现,nums[i]可以大于0,也可以小于0,也可以等于0, 那么需要判断的情况就比较复杂,解释:乘积为正数的最长子数组是 [-1,-2] 或者 [-2,-3]。解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积为 6。,那么这样就需要优化dp数组了,如果不了解,可以参考--------输入:nums = [0,1,-2,-3,-4]输入:nums = [-1,-2,-3,0,1]原创 2022-10-18 19:37:02 · 174 阅读 · 0 评论 -
Leecode152.乘积最大子数组详细题解及算法思路
利用转变的动态数组解答Leecode152.乘积最大子数组详细题解及算法思路原创 2022-10-17 21:21:10 · 196 阅读 · 0 评论 -
Leecode121.买卖股票的最佳时机详细题解及算法思路
利用贪心巧解Leecode121.买卖股票的最佳时机,提供详细题解及算法思路原创 2022-10-17 21:09:50 · 76 阅读 · 0 评论 -
Leecode63.不同路径Ⅱ-详细题解及算法思路
利用动态规划三大步骤解Leecode63.不同路径Ⅱ原创 2022-10-17 20:53:58 · 250 阅读 · 0 评论 -
Leecode 918环形子数组最大和-详细题解及算法思路
Leecode 918环形子数组最大和-详细题解及算法思路原创 2022-10-16 20:32:58 · 306 阅读 · 0 评论 -
Leecode 53.最大子数组和详细题解及算法思路
Leecode 53.最大子数组和解题思路及算法详原创 2022-10-16 15:41:16 · 58 阅读 · 0 评论 -
Leecode 213.打家劫舍Ⅱ详细题解及算法思路
Leecode213.打家劫舍Ⅱ,利用动态规划三大步骤原创 2022-10-16 13:12:09 · 82 阅读 · 0 评论 -
Leecode 740.删除数并获取得点数详细题解及算法思路
熟练掌握动态规划三大步骤应对Leecode原创 2022-10-16 11:41:53 · 74 阅读 · 0 评论 -
Leecode198.打家劫舍详细题解及算法思路
用动态规划三大步骤轻松应对原创 2022-10-16 11:36:41 · 71 阅读 · 0 评论 -
动态规划算法详解及案例讲解
动态规划三大步骤应对Leecode原创 2022-10-16 11:08:53 · 130 阅读 · 0 评论 -
Leecode 42.接雨水详细解题思路及算法思路
Leecode 42.接雨水详细解题及算法思路原创 2022-10-15 19:58:26 · 70 阅读 · 0 评论 -
# Leecode11.盛最多水的容器详细题解及算法思路
说明:你不能倾斜容器。示例1:输入:height = [1,1]输出:1。原创 2022-10-15 19:55:28 · 97 阅读 · 0 评论 -
a剑指 Offer II 019. 最多删除一个字符得到回文a详解分析
运用双指针算法思维原创 2022-10-10 21:51:19 · 77 阅读 · 0 评论 -
PAT乙级1001(解题思路)
对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1?执行一次,计数器加一次,到1为止,输出结果,这道题就完事了。原创 2022-09-19 14:53:26 · 39 阅读 · 0 评论