随笔分类 -  LeetCode

摘要:LeetCode74. 搜索二维矩阵 题目描述 /** * 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: * <p> * 每行中的整数从左到右按升序排列。 * 每行的第一个整数大于前一行的最后一个整数。 */ 思路分析 由题目知,二维数组中的元素是有序的,因 阅读全文
posted @ 2021-06-10 08:53 mx_info 阅读(55) 评论(0) 推荐(0)
摘要:LeetCode73. 矩阵置零 题目描述 /** * 给定一个 m x n 的矩阵,如果一个元素为 0 , * 则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 * * 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。 * 一个简单的改进方案是使用 O(m 阅读全文
posted @ 2021-06-09 09:06 mx_info 阅读(68) 评论(0) 推荐(0)
摘要:LeetCode70.爬楼梯 题目描述 /** * 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 * * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? * * 注意:给定 n 是一个正整数。 */ 思路分析 由题意可知,因为每次只能爬一个或者两个楼梯,所以n个台阶的总共爬 阅读全文
posted @ 2021-06-08 08:50 mx_info 阅读(38) 评论(0) 推荐(0)
摘要:leetCode69. x 的平方根 题目描述 /** * 实现 int sqrt(int x) 函数。 * * 计算并返回 x 的平方根,其中 x 是非负整数。 * * 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 * */ 思路分析 实现开平方函数,可以使用函数替换法,即将x的二 阅读全文
posted @ 2021-06-07 08:35 mx_info 阅读(43) 评论(0) 推荐(0)
摘要:LeetCode67. 二进制求和 题目描述 /** * * 给你两个二进制字符串,返回它们的和(用二进制表示)。 * * 输入为 非空 字符串且只包含数字 1 和 0。 * */ 思路分析 二进制求和算法思路和十进制求和完全一致 二进制是逢2进一,而十进制是逢10进1,其他进制也类似 从最低位到最 阅读全文
posted @ 2021-06-06 08:28 mx_info 阅读(70) 评论(0) 推荐(0)
摘要:LeetCode66.加一 题目描述 /** * * 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 * <p> * 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 * <p> * 你可以假设除了整数 0 之外,这个整数不会以零开头。 * */ 思路分析 用 阅读全文
posted @ 2021-06-05 08:18 mx_info 阅读(44) 评论(0) 推荐(0)
摘要:LeetCode61. 旋转链表 题目描述 /** * * 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 * */ 思路分析 旋转链表,也就是将链表的每个节点向右移动 k 个位置,考虑先将链表置为环形链表 先计算原始链表的长度,将链表向右移动k个节点,也就是将环形 阅读全文
posted @ 2021-06-04 10:29 mx_info 阅读(39) 评论(0) 推荐(0)
摘要:LeetCode54. 螺旋矩阵 题目描述 /** * * 给你一个 m 行 n 列的矩阵 matrix , * 请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 * */ 思路分析 螺旋矩阵,即螺旋输出矩阵,即将每层按照顺时针的方式将其元素保存在集合中然后输出 定义四个变量 left right 阅读全文
posted @ 2021-06-03 10:44 mx_info 阅读(56) 评论(0) 推荐(0)
摘要:leetCode59. 螺旋矩阵 II 题目描述 /** * * 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素, * 且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 * */ 思路分析 螺旋生成矩阵,可以将一个矩阵看作二维数组,也就是按照顺时针在二维数组中填充数 阅读全文
posted @ 2021-06-03 10:00 mx_info 阅读(71) 评论(0) 推荐(0)
摘要:LeetCode58. 最后一个单词的长度 题目描述 /** * * 给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。 * 如果不存在最后一个单词,请返回 0 。 * * 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 * */ 思路分析 给定一个 阅读全文
posted @ 2021-06-02 10:05 mx_info 阅读(39) 评论(0) 推荐(0)
摘要:LeetCode57. 插入区间 题目描述 /** * * 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 * <p> * 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠 * <p> * (如果有必要的话,可以合并区间)。 * */ 思路分析 因为原始区间列表是无重叠的,并 阅读全文
posted @ 2021-06-01 11:36 mx_info 阅读(54) 评论(0) 推荐(0)
摘要:LeetCode56.合并区间 题目描述 /** * * 以数组 intervals 表示若干个区间的集合, * 其中单个区间为 intervals[i] = [starti, endi] 。 * 请你合并所有重叠的区间,并返回一个不重叠的区间数组, * 该数组需恰好覆盖输入中的所有区间。 * */ 阅读全文
posted @ 2021-05-31 15:31 mx_info 阅读(98) 评论(0) 推荐(0)
摘要:LeetCode53. 最大子序和 题目描述 /** * * 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素), * 返回其最大和。 * */ 思路分析 求最大子序和,可以考虑使用递归的思路,从第一个元素开始,记录当前项的前一项子串的最大子序和 用前一项的最大子 阅读全文
posted @ 2021-05-30 11:15 mx_info 阅读(55) 评论(0) 推荐(0)
摘要:LeetCode50. Pow(x, n) 题目描述 /** * * 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x^n)。 * */ 思路分析 使用递归的思路,每次将平方的结果再平方,可节省大量时间 pow(x, n)函数实质是 n 个 x 相乘,如果n为偶数,可以通过每次平方上 阅读全文
posted @ 2021-05-29 09:45 mx_info 阅读(49) 评论(0) 推荐(0)
摘要:LeetCode43. 字符串相乘 题目描述 /** * * 给定两个以字符串形式表示的非负整数 num1 和 num2, * 返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 * */ 思路分析 使用两数竖式相乘的方法 分别遍历两个字符串的每一位,将每一位获取的字符转换为数字的 阅读全文
posted @ 2021-05-28 10:39 mx_info 阅读(86) 评论(0) 推荐(0)
摘要:LeetCode415. 字符串相加 题目描述 /** * * 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 * */ 思路分析 按照多位数加法列竖式计算的方式 定义一个可变长字符串保存计算的结果,定义一个carry保存对应两位是否有进位 将每次计算的结果以字符从形式追加到字 阅读全文
posted @ 2021-05-27 10:14 mx_info 阅读(40) 评论(0) 推荐(0)
摘要:LeetCode42.接雨水 题目描述 /** * * 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图, * <p> * 计算按此排列的柱子,下雨之后能接多少雨水。 * */ 思路分析 使用 双指针 + 双变量 的方法 双指针分别指向数组左右两侧的索引,双变量分别保存数组左右两侧的最大值 依 阅读全文
posted @ 2021-05-26 10:43 mx_info 阅读(41) 评论(0) 推荐(0)
摘要:LeetCode41. 缺失的第一个正数 题目描述 /** * 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 * <p> * 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 * */ 思路分析 可以使用Hash结构的快速查找元素特性 将数组中所有 阅读全文
posted @ 2021-05-25 11:21 mx_info 阅读(34) 评论(0) 推荐(0)
摘要:LeetCode33. 搜索旋转排序数组 题目描述 /** * * 整数数组 nums 按升序排列,数组中的值 互不相同 。 * <p> * 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转, * 使数组变为 [nums[k], nums 阅读全文
posted @ 2021-05-24 10:14 mx_info 阅读(51) 评论(0) 推荐(0)
摘要:LeetCode34. 在排序数组中查找元素的第一个和最后一个位置 题目描述 /** * * 给定一个按照升序排列的整数数组 nums,和一个目标值 target。 * 找出给定目标值在数组中的开始位置和结束位置。 * <p> * 如果数组中不存在目标值 target,返回 [-1, -1]。 * 阅读全文
posted @ 2021-05-23 10:29 mx_info 阅读(71) 评论(0) 推荐(0)