摘要: 题目 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123""132""213""231""312""321"给定 n 和 k,返回第 k 个排列。 说明: 给定 n 的范围是 [1, 9]。给定 k 阅读全文
posted @ 2020-08-05 16:51 maoguai 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目 给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 思路 与螺旋矩阵题完全一致 实现 class Solution: def generateMatrix(self, n: int) -> List[List[int]]: result = [ 阅读全文
posted @ 2020-08-05 15:51 maoguai 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目 给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指仅由字母组成、不包含任何空格字符的最大子字符串。 思路 将字符串从后向前遍历,当遇到非空格 阅读全文
posted @ 2020-08-05 15:39 maoguai 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9] 阅读全文
posted @ 2020-08-05 15:05 maoguai 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]] 思路 通过设置一个移动的判定区间,来完成区间的合并 首先对数组排序,使其以左区间为标准,从小到大,依次排序,然后依次读出 阅读全文
posted @ 2020-08-05 11:17 maoguai 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 思路 贪心算法:记录每一个位置能够跳跃到的最远距离,如果超过前者的距离则更新,如果不能则保留原距离。注意,在跳跃的时候,要确保当前位置是可达的,即是在最远距 阅读全文
posted @ 2020-08-05 10:43 maoguai 阅读(94) 评论(0) 推荐(0) 编辑