
我理解的算法
文章平均质量分 88
没有专业的公式,没有专业的术语,
以最简单的白话方式来理解千变万化的算法,分享我理解的算法让你也能真正理解
卡卡爾
这个作者很懒,什么都没留下…
展开
-
我理解的算法 - 53.最大子数组和(超经典多种解法:分治法)
这边我们可以想像一下,一个横跨了我们mid的子数组,其和要最大的话,那么是不是就等于mid往左找组合出来的连续数组中最大和的值以及mid往右找组合出来的连续数组中最大和的值,把这两个值加起来,即为横跨mid的最大的值了,比如-2,1这个结点,我们的mid是-2,那么mid往左看即和为-2(左边带上mid值计算),所以mid左边最大和是-2,右边为1,左右相加得到-1,所以其。分治法的核心思想是把大的问题分解成小的问题,把小的问题分成最小的问题来解决,所以分是关键思路,治是重要手段,分而治之,可解也。...原创 2022-08-01 09:33:52 · 2156 阅读 · 9 评论 -
我理解的算法 - 53.最大子数组和(超经典多种解法:强推、动态规划、Kadane算法)
题目:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。从暴力解法开始,然后以推算来演算出规律,再以动态规划以及Kadane算法来解释这道题目...原创 2022-07-28 09:05:09 · 452 阅读 · 0 评论 -
我理解的算法 - 2104.子数组范围和(单调栈的扩展使用)
给你一个整数数组 nums 。nums 中,子数组的 范围 是子数组中最大元素和最小元素的差值。返回 nums 中 所有 子数组范围的 和 。子数组是数组中一个连续 非空 的元素序列。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/sum-of-subarray-ranges这道题目与【我理解的算法 - 907.子数组的最小值之和(单调栈经典例题)】的题目主题思路是一样的,但是比上面的题目更难一些,其实就是不仅要求最小值之和还要求最大值之和,下面我们会说明为什原创 2022-07-11 11:46:45 · 325 阅读 · 1 评论 -
我理解的算法 - 907.子数组的最小值之和(单调栈经典例题)
子数组的最小值之和,从暴力解法到找规律再到单调栈的运用,最后进行优化,达到更好的执行效率,说明了为什么使用单调栈以及单调栈怎么结合题目使用,是一道经典的单调栈的运用原创 2022-06-02 10:37:12 · 410 阅读 · 8 评论 -
我理解的算法 - 1423.可获得的最大点数(前后缀和+滑动窗口)
我理解的算法 - 1423.可获得的最大点数(前后缀和+滑动窗口)题目前缀和+后缀和不断优化滑动窗口题目几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。示例 1:输入:cardPoints = [1,2,3,4,5,6,1], k = 3输出:12原创 2022-05-26 12:52:42 · 222 阅读 · 12 评论 -
我理解的算法 - 2121.相同元素的间隔之和及1685.有序数组中差绝对值之和
我理解的算法 - 2121.相同元素的间隔之和及1685.有序数组中差绝对值之和2121.相同元素的间隔之和1685.有序数组中差绝对值之和这两道题都是leetcode的中等题型,我们可以尝试使用不同解法去做做看,题目大家自行查看:2121.相同元素的间隔之和,1685.有序数组中差绝对值之和之所以把这两道题目放在一起,是因为这两道题目的解题思路是一样的,大家之后遇到这种间隔和啊,差绝对值和啊都可以试试这种解题思路,那么我们先来看一下leetcode21212121.相同元素的间隔之和首先,最简单的原创 2022-05-03 00:00:31 · 372 阅读 · 40 评论 -
我理解的算法 - 四数之和
我理解的算法 - 四数之和LeetCode 18.四数之和LeetCode 18.四数之和这道题的题目大家自行查看:链接在这其解法和思路与两数之和和三数之和都是一样的,还不熟悉的小朋友们可以看这里:两数之和,三数之和那么这道题目的难点在哪里呢?其实这道题目的难点就在于要求的和变成了四个数,比三个数还多一个数,所以我们要想办法尽量把多余的一些处理给它优化掉,这样才能提高其效率,我们来看一下吧四数之和的思路和三数之和是一样的,我们还是可以使用双指针来做,只不过这边我们需要固定2个元素即固定a和b来移动原创 2022-04-27 15:43:42 · 333 阅读 · 1 评论 -
我理解的算法 - 三数之和及两数、三数之和扩展题
我理解的算法 - 经典题目三数之和及两数之和扩展题原创 2022-04-18 09:22:34 · 656 阅读 · 0 评论 -
我理解的算法 - 经典题目两数之和
我理解的算法 - 经典题目两数之和这道题目是乐扣的第一题,非常的经典呢,想必大家要入算法,肯定会先做这道题目,题目内容大家自行查看:链接在这 ,需要从数组中找出2个数的和与目标数字相等的结果,返回2个数在数组中的下标这道题目有多种解法,最先能想到的暴力法比较简单,嵌套两个for循环搞定,时间复杂度O(n2)O(n^{2})O(n2),public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; for(原创 2022-04-13 18:05:41 · 991 阅读 · 0 评论