
algorithm
文章平均质量分 87
仗剑逐风
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode算法题总结篇-二分查找
motivation 写之前的碎碎念,不知不觉已经拿到了Leetcode的3月份刷题打卡徽章(实际上最后几天就已经在注意了哈哈哈)。同时LeetCode刷题系列已经很久没有更新,加上最近看到的一个面试题目,是属于二分查找的思想在做,但是我们平时使用二分查找时却大多数只用在有序数组中特定元素的查找、有序数组等于特定元素的最小索引、或者是有序数组中满足条件的最小值。 看起来是比较局限,可能是前人已经把问题精简到对一个有序数组进行查找这样的地步,但是在一些问题中,可能并没有直接给出这样的有序数组,而是暗含在某种计原创 2021-04-01 17:06:10 · 325 阅读 · 0 评论 -
LeetCode-103-mid-二叉树的锯齿形层序遍历(dfs:深度优先搜索、搜索模板)
关键词:“深度优先搜索”、“搜索模板” 文章目录题目描述分析解题思路搜索模板算法数据结构复杂度分析代码实现相关问题 题目描述 LeetCode-103-mid-二叉树的锯齿形层序遍历 分析 对于层序遍历,不能够使用递归的方式,一般直接进行搜索。 类似题目:二叉树的层序遍历,使用队列存储每层要访问的对象。 本题在此之上要求相邻两层的遍历方向相反。对于第iii层的最后一个遍历的元素,其子节点优先被遍历,是和栈后进先出的特点相符合的。 解题思路 使用栈来存储每层待访问的节点指针。 搜索具有很明确的代码模板。 搜索原创 2020-12-22 11:33:36 · 145 阅读 · 0 评论 -
LeetCode-316-mid-去除重复数字(单调栈)
关键字:“单调栈” 文章目录题目描述分析解题思路算法数据结构复杂度分析代码实现相关问题 题目描述 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置) LeetCode-316-mid-去除重复字母 分析 题目要求: 去重且每个字母出现一次:则返回结果的长度固定 返回结果的排列保持原有相对位置 返回结果的字典序最小 设s中每个字母出现次数为[ca,cb,...,cz][c_a, c_b,..., c_z][ca,cb原创 2020-12-20 22:30:20 · 284 阅读 · 0 评论 -
LeetCode-714-mid-买卖股票的最佳时机含手续费(动态规划、详细分析与理解、同系列题目汇总)
关键词:“动态规划”、“买卖股票” 文章目录题目描述分析解题思路(动态规划)存储含义转移关系初始状态算法数据结构复杂度分析代码实现相关问题 题目描述 买卖股票的最佳时机含手续费 这道题,有想到动态规划来做,但是没有想到合适的数组存储意义。看了几个对应题解,都是以对应时间点的利润作为含义。读了好几个,才明白其中含义。相比较之下,个人认为,以当前账户余额最为贴切。(利润是一个两个状态的资产的差值的描述,且当用户拥有某个股票时,这股权也是用户资产的一部分,而前者使用利润来描述时是忽略了这样的含义) 分析 根据题目原创 2020-12-17 17:22:13 · 167 阅读 · 0 评论 -
LeetCode-49-字母异位词分组(详细分析、计数、排序)
关键字:“字母异位词”、“特征”、“分析” 题目描述 字母异位词分组 分析 对于这道题目主要有两个问题需要解决: 如何判断两个字符串时字母异位词 如何将相同的字母异位词放入同一个数组中 对于问题1: 判定方式1:对于两个字符串,排序后的结果如果是相同的两个字符串,则为字母异位词 判定方式2:由于题目说明所有输入均为小写字母,可以用长度为26的数组来计数各个字母出现的次数。对于两个字符串,如果对应的计数数组的各个位置均相同,则这两个字符串为字母异位词 方式1中排序后的数组或方式2中计数数组,抽象为特征,每原创 2020-12-15 14:26:20 · 682 阅读 · 4 评论 -
LeetCode-376-mid-摆动序列(贪心、动态规划、具体分析)
关键字: 贪心、动态规划、具体分析 题目描述 在一个数组中选出相对大小交替的最长子序列。 LeetCode-376-mid-摆动序列 分析 摆动序列:对于非边界点,是峰顶arr[i−1]<arr[i]>arr[i+1]arr[i-1] < arr[i] > arr[i+1]arr[i−1]<arr[i]>arr[i+1]或谷底arr[i−1]>arr[i]<arr[i+1]arr[i-1] > arr[i] < arr[i+1]arr[i−1]&原创 2020-12-12 17:02:43 · 215 阅读 · 0 评论 -
LeetCode-649-mid-Dota2 参议院(贪心,模拟,详细解题思路与分析)
关键字:“贪心”、“队列模拟” 文章目录题目描述分析解题思路算法数据结构代码实现相关问题 题目描述 详情见: LeetCode-Dota2参议院 分析 对于一名参议员来说,当投票时,要禁止对方参议员的权力。 当一方参议员全部被禁止后,另一方获胜。 要模拟这个投票过程,问题在于每个参议员如何选择其要禁止的敌对方参议员。那么,如何选择呢? 贪心:选择在自己投票后首先会进行投票的对方参议员。 如何证明这一点呢? 这里先给出几个例子,直观的认识到顺序的重要性。再对该贪心策略的正确性进行直观分析、理论证明。 几个原创 2020-12-11 23:59:18 · 523 阅读 · 0 评论 -
LeetCode-860-easy-柠檬水找零(贪心,模拟)
关键字 模拟求解,贪心 题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 注意,一开始你手头没有任何零钱。 如果你能给每位顾客正确找零,返回 true ,否则返回 false 。 分析 题目描述为按照顺序进行找零,进行模拟,只用维护每次原创 2020-12-10 11:25:04 · 453 阅读 · 0 评论 -
leetcode#62-mid-不同路径(含分析与类似题目比较)(动态规划经典例子)
题目描述 一个机器人位于一个 m x n 网格的左上角 。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。 问总共有多少条不同的路径? 分析 问题等价于在笛卡尔坐标系下,从(m,n)到(1,1)进行移动操作,其中移动操作只为左移一格或下移一格。 从(m,n)到(1,1)的移动:在(m,n)处只能移动到(m-1,n)或(m,n-1); 设f(m,n)f(m,n)f(m,n)表示从(m,n)移动到(1,1)所有的路径数目,其中m≥1,n≥1m \geq 1, n \geq 1m≥1,原创 2020-12-09 13:46:04 · 244 阅读 · 2 评论 -
leetcode#861-mid-翻转矩阵后的得分
问题描述 有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。 在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。 返回尽可能高的分数。 示例: 输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]] 输出:39 解释: 转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]] 0b1111 + 0b1001 + 0b1111 =原创 2020-12-07 15:49:07 · 105 阅读 · 0 评论 -
Leetcode#34 Search for a Range
题目描述: Given an array of integers nums sorted in ascending order, find the starting and ending position of a given target value. Your algorithm's runtime complexity must be in the order of O(lo...原创 2018-06-12 18:19:19 · 175 阅读 · 4 评论 -
LeetCode #55jump game
'''#55jump gamesGiven an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Det...原创 2018-04-30 10:05:03 · 162 阅读 · 0 评论