1 PPlemon1997

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 16w+

解题思路-leetcode第七十一题:简化路径

解题思路-leetcode第七十一题:简化路径题目描述:以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须只有一个斜杠 /。最后一个目录名(如果存在)不能以 / 结尾。

2020-09-18 20:09:18

解题思路-leetcode第七十题:爬楼梯

解题思路-leetcode第七十题:爬楼梯题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶解题思路:本题采用动态规划的解法,将大问题化解为小问题

2020-09-15 20:06:58

解题思路-leetcode第六十九题:X的平方根

解题思路-leetcode第六十九题:X的平方根题目描述:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。解题思路:本题利用数学函数将x的平分根转化为exp{1/2*lnx},因此直接调用math包的数学函数求解,但是这种方法存在一种问题,即

2020-09-14 20:45:12

解题思路-leetcode第六十八题:文本左右对齐

解题思路-leetcode第六十七题:二进制求和题目描述:给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ’ ’ 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。文本的最后一行应为左对齐,且单词之间不插入额外的空格。

2020-09-08 19:46:57

解题思路-leetcode第六十七题:二进制求和

解题思路-leetcode第六十七题:二进制求和题目描述:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1 <= a.length, b.length <= 10^4字符串如果不是 “0” ,就都不含前导零。解题思

2020-09-04 20:38:48

解题思路-leetcode第六十六题:加一

解题思路-leetcode第六十六题:加一题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。解题思路:本题采用先将列表元素组合成数字,然后加一,然后再分割成列表元

2020-08-28 20:37:21

解题思路-leetcode第六十五题:有效数字

解题思路-leetcode第六十五题:有效数字题目描述:验证给定的字符串是否可以解释为十进制数字。例如:“0” => true" 0.1 " => true“abc” => false“1 a” => false“2e10” => true" -90e3 " => true" 1e" => false“e3” => false" 6e-1" => true" 99e2.5 " => false“53.5e93” =&

2020-08-25 20:09:02

解题思路-leetcode第六十四题:最小路径和

解题思路-leetcode第六十三题:不同路径Ⅱ题目描述:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解题思路:本题适用于动态规划方法,将大问题化解为小问题,从某一点到终点的解就等于其左边元素和上方元素的解之中的最小值加上本身的值,我们通过在原矩阵中修改,将每一个位置

2020-08-21 21:09:17

解题思路-leetcode第六十三题:不同路径Ⅱ

解题思路-leetcode第六十三题:不同路径Ⅱ题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],[0,1,0],[0,0,0]]输出: 2解

2020-08-18 21:24:26

解题思路-leetcode第六十二题:不同路径

解题思路-leetcode第六十二题:不同路径题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -&

2020-08-14 21:41:50

解题思路-leetcode第六十一题:旋转链表

解题思路-leetcode第六十一题:旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:

2020-08-11 20:34:31

解题思路-leetcode第六十题:第K个排列

解题思路-leetcode第六十题:第K个排列题目描述:给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。示例 1:输入: n = 3, k = 3输出: “213”示例 2:输入: n = 4, k = 9输

2020-08-07 21:11:06

解题思路-leetcode第五十九题:螺旋矩阵Ⅱ

解题思路-leetcode第五十九题:螺旋矩阵Ⅱ给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]解题思路:本题采用循环赋值的方法,其关键之处如何对提前建立的列表进行螺旋遍历并赋值,本题通过设置两个标志位实现遍历的过程中转向,程序设置a,b,x,y四个变量,其中a,b代表横纵坐标,x,y代表转向标志。当x为0时,则遍历的过程中横坐标不变,当y为0

2020-08-04 21:41:46

解题思路-leetcode第五十八题:最后一个单词的长度

解题思路-leetcode第五十八题:最后一个单词的长度题目描述:给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5解题思路:本题采用split函数切分字符串并转成列表,然后从列表最后一个元素开始,找到第一个不为空的元素,并返回该元素长度。首先进

2020-07-31 22:41:46

解题思路-leetcode第五十七题:插入区间

解题思路-leetcode第五十七题:插入区间题目描述:给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:输入: intervals = [[1,3],[6,9]], newInterval = [2,5]输出: [[1,5],[6,9]]示例 2:输入: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4

2020-07-28 21:16:14

解题思路-leetcode第五十六题:合并区间

解题思路-leetcode第五十六题:合并区间给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。解题思路:本题采用先排序然后依次遍历列表元素寻找上下界的方法。首先根据列表内

2020-07-24 22:18:31

解题思路-leetcode第五十五题:跳跃游戏

解题思路-leetcode第五十五题:跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远

2020-07-21 21:04:44

解题思路-leetcode第五十四题:螺旋矩阵

解题思路-leetcode第五十四题:螺旋矩阵题目描述:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]解题思路:本题与第

2020-07-17 20:56:01

解题思路-leetcode第五十三题:最大子序和

解题思路-leetcode第五十三题:最大子序和题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。解题思路:本题采用暴力解法,即通过遍历数组,比较当前元素与之前元素...

2020-07-14 18:12:48

解题思路-leetcode第五十二题:N皇后Ⅱ

解题思路-leetcode第五十二题:N皇后Ⅱ题目描述:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回 n 皇后不同的解决方案的数量。示例:输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[[".Q…", // 解法 1“…Q”,“Q…”,“…Q.”],["…Q.", // 解法 2“Q…”,“…Q”,“.Q…”]]提示:皇后,是国际象棋中的棋

2020-07-10 21:04:54

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。