![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
白啊白_future
这个作者很懒,什么都没留下…
展开
-
LeetCode 45 跳跃游戏II
题目描述: 使用贪心算法进行求解,此题使用的贪心算法不是贪每个位置所能跳到的最远位置,而是去找在每个位置的一次跳跃范围内的某一点,从该点进行二次跳跃所能到达的位置最远,所以需要两个变量来记录跳跃位置,cur表示一次跳能够到达的最远位置,pre表示在一次跳范围之内二次跳能够到达的最远位置,当i到达一次跳能到达的最远位置时,对cur进行更新,更新为在一次跳范围内所能到的二次跳最远位置。直到跳出数...原创 2019-05-02 11:18:39 · 103 阅读 · 0 评论 -
LeetCode 70 爬楼梯
题目描述: 思路: n=1,climbStairs(1)=1 n=2,climbStairs(2)=2 n>2,爬到n阶可以看做是,由n-1阶爬1阶,由n-2阶爬2阶 climbStairs(n) =climbStairs(n-1) +climbStairs(n-2) 代码: class Solution: def climbStairs(self, n: i...原创 2019-05-08 09:14:46 · 125 阅读 · 0 评论 -
LeetCode 49 字母异位词分组
题目描述: 思路: 将数组中的每个字符串进行字符排序,使用字典记录每种不同的排序,将每个排序对应的字符串加入字典。 代码: class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: res = {} for i, s in e...原创 2019-05-10 13:29:16 · 212 阅读 · 0 评论 -
LeetCode 64 最小路径和
题目描述: 思路: 采用动态规划的方法,具体思路和之前几个路径问题类似,使用一个辅助二维数组tem,tem中第1行中的每个值是原数组值+tem左侧一个位置的值,tem中第1列中的每个值是原数组值+tem上侧一个位置的值。tem其余位置的值都是从左侧一个位置和上侧一个位置选出最小值,加上原数组值,最后tem[-1][-1]就是结果值。 具体思路参考LeetCode 62:https://b...原创 2019-05-07 10:20:19 · 112 阅读 · 0 评论 -
LeetCode 48 旋转图像
题目描述: 思路: 方阵的旋转可以通过外层环形交换和内层环形交换完成,n维方阵只需要对n/2个环进行交换即可。matrix[i][j]是每个环交换的起点,由0行开始,n/2行完成后所有交换完成,每层第一个环的起点都从对角线位置开始。 代码: class Solution: def rotate(self, matrix: List[List[int]]) -> No...原创 2019-05-09 10:40:37 · 157 阅读 · 0 评论 -
LeetCode 63 不同路径II
题目描述: 思路: 基本思路还是和62题不同路径相似,除0行和0列之外,其他位置的值是上侧和左侧值之和。 不同的是要加入查障碍,先将矩阵中的障碍1转化为-1,若0行或0列有-1,此位置之后的所有值均为-1。更新其他位置时,如果此位置为-1则不做更新,如果上左有一个-1,则只加另一侧值,上 class Solution: def uniquePathsWithObstacl...原创 2019-05-06 10:54:28 · 124 阅读 · 0 评论 -
leetcode 62不同路径
首先建立一个m*n的数组,数组中的值是能到达此格子的路线数,题目规定只能向下或向右移动,所以第一行和第一列的格子只能从其左侧或上侧移动而来,所以第一行和第一列的值为1,其余格子值为其左侧和上侧格子值之和 class Solution: def uniquePaths(self, m: int, n: int) -> int: if m == 0 or n ...原创 2019-04-25 09:43:38 · 110 阅读 · 0 评论 -
LeetCode 46 全排列
题目描述: 思路: 一个数列[1,2,3,4],进行全排列时,首先交换3、4,成为[1,2,4,3]。之后将2、3互换形成[1,3,2,4]、[1,3,4,2]。首先定住长度为n的数组的前n-1个对第n个进行全排列,之后对第n-1和第n个进行全排列。全排列过程即每轮对两个数进行交换,结果在最后加入结果集合。 思路参考:https://blog.csdn.net/summerxiachen...原创 2019-05-04 14:25:19 · 82 阅读 · 0 评论 -
LeetCode 55 跳跃游戏
题目描述: 由于前面先做了45题跳跃游戏2,所以开始的思路就是借鉴之前的想法从前向后进行跳,只考虑当前一次跳和二次跳,看二次跳的下标是否大于等于数组长度-1,大于等于的话就可以跳出,但这个题完全按照45是行不通的,因为有的位置的值为0 45题链接:https://mp.csdn.net/postedit/89743281 某个位置0值可以分成两种情况:1、可以跳过0 2、无法跳...原创 2019-05-03 11:03:26 · 75 阅读 · 0 评论 -
LeetCode 17 电话号码的字母组合
题目: 思路: 使用回溯法对这道题进行求解,如输入23,则需要在定住2中一个字母如a的情况下,对3的字母遍历,形成组合,当3的字母遍历完成后,再选择2的第二个字母,再对3的字母进行遍历。当有多个数字输入时的处理相同,即对每个数字所代表的字母逐层遍历,每次遍历每层取一个字母,选取的字母总长度等于输入的数字位数时,将这次遍历结果加入最终结果集。 代码: class Solution: ...原创 2019-05-21 10:50:41 · 190 阅读 · 0 评论