LeetCode 71 简化路径

给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,’//’)都被视为单个斜杠 ‘/’ 。 对于此问题,任何其他格式的点(例如,’…’)均被视为文件/目录名称。 请注意,返回的 规范路径 必须遵循下述格式: 返回简化后得到的 规范路径 。 示例 1: 示例 2: 示例 3: 示例 4: 提示: 解题: 官方解答: 1.栈

Continue reading


LeetCode 69 x 的平方根

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1: 示例 2: 提示: 解题: 官方解答: 1.袖珍计算器算法 2.二分查找 3.牛顿迭代

Continue reading


LeetCode 68 文本左右对齐

给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ‘ ‘ 填充,使得每行恰好有 maxWidth 个字符。 要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。 文本的最后一行应为左对齐,且单词之间不插入额外的空格。 注意: 示例 1: 示例 2: 示例 3: 提示: 解题: 官方解答: 1.模拟

Continue reading


LeetCode 66 加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 示例 2: 示例 3: 提示: 解题: 官方解答: 1.找出最长的后缀9

Continue reading


LeetCode 65 有效数字

有效数字(按顺序)可以分成以下几个部分: 小数(按顺序)可以分成以下几个部分: 整数(按顺序)可以分成以下几个部分: 部分有效数字列举如下:[“2”, “0089”, “-0.1”, “+3.14”, “4.”, “-.9”, “2e10”, “-90E3”, “3e+7”, “+6e-1”, “53.5e93”, “-123.456e789”] 部分无效数字列举如下:[“abc”, “1a”, “1e”, “e3”, “99e2.5”, “–6”, “-+3”, “95a54e53”] 给你一个字符串 s ,如果 s 是一个 有效数字 ,请返回 true 。 示例 1: 示例 2: 示例 3: 提示: 解题: 正则匹配效率是真的差 官方解答: 1.确定有限状态自动机

Continue reading


LeetCode 63 不同路径II

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 示例 1: 示例 2: 提示: 解题: 官方解答: 1.动态规划

Continue reading


LeetCode 62 不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1: 示例 2: 示例 3: 示例 4: 输入:m = 3, n = 3输出:6 提示: 解题: 官方解答: 1.动态规划 2.组合数学

Continue reading