![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日一题
每日刷算法
Mo-Xian
毕业于西南大学,工作于2017年,开此博客希望记录所见所得所感所悟,形成体系,也希望认识更多志同道合的朋友和大佬,一起走向IT的知识殿堂
展开
-
每日一道算法题:20201014-环形链表
环形链表前言一、解决思路1.快慢指针法1,环很大2,环很小2.存放集合二、实现代码1.快慢指针法2.存放集合前言给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1原创 2020-10-14 15:01:40 · 142 阅读 · 0 评论 -
每日一道算法题:20201013-删除链表倒数第n个节点
删除链表倒数第n个节点问题描述一、解决思路二、实现代码问题描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。一、解决思路我们可以使用两个指针,一个指针fast先走n步,然后另一个指针slow从头结点开始,找到要删除结点的前一个结点,这样就可以完成结点的删除了。二、实现代原创 2020-10-13 10:15:45 · 117 阅读 · 0 评论 -
每日一道算法题:20201012-链表合并
链表合并问题描述一、解决思路二、代码实现问题描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4一、解决思路这道题可以使用递归实现,新链表也不需要构造新节点,我们下面列举递归三个要素终止条件:两条链表分别名为 l1 和 l2,当 l1 为空或 l2 为空时结束返回值:每一层调用都返回排序好的链表头本级递原创 2020-10-12 10:11:42 · 97 阅读 · 0 评论 -
每日一道算法题:20201010-爬楼梯
爬楼梯问题描述一、解决方案思路1、公式法2、动态规划法二、代码实现1.公式法代码2.动态规划法代码实现问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶一、原创 2020-10-10 10:24:32 · 356 阅读 · 0 评论 -
每日一道算法题:20200630-三数之和
问题描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]Related Topics 数组 双指针解决方案1,先排序,确定一个值,和一个结果target,然后在排序数组中通过二分法查找两个原创 2020-06-30 13:57:09 · 225 阅读 · 0 评论 -
每日一道算法题:20200629-回文数
问题描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。解题思路此处撰写解题思路和整数反转差不多的感觉 只要反过来相等就行按照题意负数不算回文数,就直接返回代码cl原创 2020-06-29 15:49:25 · 1247 阅读 · 0 评论 -
每日一题算法:20200624-除自身以外数组的乘积
问题描述给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,原创 2020-06-24 10:33:42 · 172 阅读 · 0 评论 -
每日一道算法:20200622-二叉树翻转
问题描述翻转一棵二叉树。示例:输入: 4/ 2 7/ \ / 1 3 6 9输出: 4/ 7 2/ \ / 9 6 3 1备注:这个问题是受到 Max Howell 的 原问题 启发的 :谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。Related Topics 树解决方案这是一个非常经典的树的问题,这个问题很适合用递归方法来解决原创 2020-06-22 10:58:04 · 142 阅读 · 0 评论 -
每日一道算法:20200623-顺时针打印矩阵
问题描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 100 (行数)0 <= matrix[i].length &原创 2020-06-23 10:38:17 · 163 阅读 · 1 评论