每日一题
每日刷算法
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 · 384 阅读 · 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 · 235 阅读 · 0 评论 -
每日一道算法题:20201012-链表合并
链表合并问题描述一、解决思路二、代码实现 问题描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 一、解决思路 这道题可以使用递归实现,新链表也不需要构造新节点,我们下面列举递归三个要素 终止条件:两条链表分别名为 l1 和 l2,当 l1 为空或 l2 为空时结束 返回值:每一层调用都返回排序好的链表头 本级递原创 2020-10-12 10:11:42 · 160 阅读 · 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 · 583 阅读 · 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 · 400 阅读 · 0 评论 -
每日一道算法题:20200629-回文数
问题描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 解题思路 此处撰写解题思路 和整数反转差不多的感觉 只要反过来相等就行 按照题意负数不算回文数,就直接返回 代码 cl原创 2020-06-29 15:49:25 · 1328 阅读 · 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 · 234 阅读 · 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 · 211 阅读 · 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 · 250 阅读 · 1 评论
分享