动态规划 动态规划,光从字面拆分,可分为 “动态” 与 “规划”,动态,就是状态(分解之后子问题的解)变化的过程。不管三七二十一 . dp[i] 先定 ,寻找状态转移方程(原问题与子问题之间的关系,递推公式),怎么寻找呢?就是前一项和后一项的关系,一般不太容易找得出来。 当然,找到状态方程,还要配上一系列的条件判断,很复杂的一个过程 复杂原问题分解为相对简单子问题 子问题 推出 原问题的解 最优子优子结构 2022-01-11 #数据算法与结构
双指针 采购方案(双指针)一个整组数组 nums,和一个目标值 target。求 一个数组中不大于有多少个组合? 如 nums=[1,2,9,2] target=10; 输出 4 1+2<10;1+9<=10.... 脑子里第一个蹦出来的想法就是先排序,后双 for 遍历,别问为什么,就是脑子太简单了。 看了答案才知道,这套题采用双指针法,着实精妙。结合一个例子 nums 2022-01-11 #数据算法与结构
排序 排序十大经典排序算法演示图https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html 插入排序算法123456789101112131415161718192021222324// floatSortTow([2, 7, 3, 1, 3, 1, 1, 9]);function insertSort(nums) { 2022-01-11 #数据算法与结构
二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法,可以在数据规模的对数时间复杂度内完成查找。二分查找可以应用于数组,是因为数组具有有随机访问的特点,并且数组是有序的。二分查找体现的数学思想是「减而治之」,可以通过当前看到的中间元素的特点推测它两侧元素的性质,以达到缩减问题规模的效果。二分查找问题也是面试中经常考到的问题,虽然它的思想很简单,但写好二分查找算法并不是 2022-01-11 #数据算法与结构
滑动窗口 从字面上来看,很容易理解,就是一个窗口,向前一步步移动,遇到的元素,我们窗口某个特性(比如窗口内所有元素的和)增加这个元素,与此同时,我们的窗口左边可以做一些收缩,改变窗口的大小,或着保持一定的长度。而后,right 继续向前移动,直到遍历结束。下面我们看一道例题感受下。 核心:利用指针 必须要深入探究窗口形成的条件. https://leetcode-cn.com/problems/longes 2022-01-11 #数据算法与结构
两数之和 算法思路由于从加法从最后节点开始运算,所以我们可以用栈存,然后出栈做加法,生成节点就可以了。 数组转链表12345678910111213/** arr to reveser Link Node */const arrTransToLink = (arr) => { let ans = null; let i = 0; while (i < arr.length) 2022-01-11 #leetcode
找到中位数的节点 找到中位数的节点[1,2,3,4,5] 快慢指针法1找出链表中位数节点的方法多种多样,其中较为简单的一种是「快慢指针法」。初始时,快指针 fast 和慢指针 slow 均指向链表的左端点 left。我们将快指针 fast 向右移动两次的同时,将慢指针 slow 向右移动一次,直到快指针到达边界(即快指针到达右端点或快指针的下一个节点是右端点)。此时,慢指针对应的元素就是中位数。 代码实现1234 2022-01-11 #leetcode
React-Native-Issue (Text) some texts get cut off in some device(Android)在一些 Android 手机 设备,Text 组件 包裹的文字,会出现一种截断的现象,设置 fontWeight:’bold’,也有可能发生此现象,究竟原因可能是库中的 Text 字体 与 系统的 Text 字体发生了冲突? 不过我们也有解决的方案.通过设置 fontFamily 为 ‘’,可 2020-07-18 #React Native
动态规划 前言动态规划,未刷力扣之前,也弄过几道,当时境界未到,发现特别的难,如今看来,也还是很难,不过,经过小小摸索,倒是有了一些心得,故此记录一般。 动态规划的问题字眼一般有如下,求某项的值,求在什么情况下的最优解,多少中情况之类的求接 斐波那契数https://leetcode-cn.com/problems/fibonacci-number/ 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波 2020-05-26 Algorithm #algorithm
树的遍历 前言树从根节点,一值向下衍生的 的数据结构,二叉树是我们所关注的重点,对于树的遍历,我一直都不着门道,今天正好有突破,所有故此记录一下 二叉树的直径https://leetcode-cn.com/problems/diameter-of-binary-tree/ 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 2020-05-26 #algorithm