Loading

摘要: 约数 1200000有多少个约数(只计算正约数)。 #include <stdio.h> int main() { int count = 0, n = 1200000; for (int i = 1; i * i <= n; ++i) { if (n % i == 0) count += 2; } 阅读全文
posted @ 2020-03-23 19:56 RioTian 阅读(1228) 评论(4) 推荐(1)
摘要: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 解法: 归并法 解法:递归法 阅读全文
posted @ 2020-03-22 19:54 RioTian 阅读(139) 评论(0) 推荐(0)
摘要: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 解法: 老实用快慢指针,快指针先走n步,然后快慢一起走,直到快指针走到最后,要注意的是可能是要删除第一个节点,这个时候可以直接返回 阅读全文
posted @ 2020-03-21 08:50 RioTian 阅读(124) 评论(0) 推荐(0)
摘要: 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表 : " " 在节点 c1 开始相交。 示例 1: " " 示例 2: " " 示例 3: " " 注意: 如果两个链表没有交点,返回 . 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O( n 阅读全文
posted @ 2020-03-20 20:34 RioTian 阅读(114) 评论(0) 推荐(0)
摘要: 特别感谢LeetCode大佬 "陈牧远" 的科普知识 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n ),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 示例 2: 说明: 1. 不能 更改原数组(假设数组是只读 阅读全文
posted @ 2020-03-20 20:23 RioTian 阅读(212) 评论(0) 推荐(0)
摘要: 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 。 为了表示给定链表中的环,我们使用整数 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 是 ,则在该链表中没有环。 说明: 不允许修改给定的链表。 示例 1: 示例 2: 示例 3: 进阶: 你是否可以不用额外空间解决 阅读全文
posted @ 2020-03-20 20:12 RioTian 阅读(183) 评论(0) 推荐(0)
摘要: 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 是 ,则在该链表中没有环。 示例 1: 示例 2: 示例 3: 进阶: 你能用 O(1) (即,常量)内存解决此问题吗? 代码: 中规中矩的快慢指针,12ms 9MB 阅读全文
posted @ 2020-03-20 19:35 RioTian 阅读(109) 评论(0) 推荐(0)
摘要: 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 问题分析 对于链表的问题,根据以往的经验一般都是要建一个dummy node,连上原链表的头结点,这样的话就算头结点变动了,我们还可以通过dummy next来获得新链表的头结点。这道题的要 阅读全文
posted @ 2020-03-19 16:17 RioTian 阅读(114) 评论(0) 推荐(0)
摘要: 给定一个链表和一个特定值 x ,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: Code: 巧设双指针 阅读全文
posted @ 2020-03-19 15:24 RioTian 阅读(106) 评论(0) 推荐(0)
摘要: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? Code: 递归法 Code: 双指针法 阅读全文
posted @ 2020-03-19 15:04 RioTian 阅读(138) 评论(0) 推荐(0)
摘要: 给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。 输入格式: 输入在一行中先给出 N(1 using namespace std 阅读全文
posted @ 2020-03-18 14:49 RioTian 阅读(659) 评论(0) 推荐(0)
摘要: 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性: 和 。`val next prev 0 index `的。 在链表类中实现这些功能: :获取链表中第 index 个节点的值。如果索引无效,则返回 1。 :在链表的第一个元素之前添加一个值为 的节点。插入后,新节点将成为 阅读全文
posted @ 2020-03-17 21:44 RioTian 阅读(191) 评论(0) 推荐(0)
摘要: 给你一个 m n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最大 示例 1: 示例 2: 示例 3: 提示: m == mat.length n == mat[i].len 阅读全文
posted @ 2020-03-15 22:22 RioTian 阅读(201) 评论(0) 推荐(0)
摘要: 今天是算法数据结构专题的第5篇文章,我们一起来学习一下「并查集」。 并查集被很多ACMer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题。并支持两种操作: 合并(Union):把两个不相交的集合合并为一个集合。 查询(Find):查询两个元素是否在同一个集合中。 不多废话开始文章。 阅读全文
posted @ 2020-03-14 17:10 RioTian 阅读(3550) 评论(0) 推荐(3)
摘要: update:21/07/24 前言 绝对众数。在数列 \(p\) 中出现次数严格大于 \(\frac{\vert p \vert}{2}\) 的数叫做绝对众数。 快速排序 一般来说我们可以直接排序解决问题,如果存在绝对众数的话,最中间的数一定是绝对众数。 时间复杂度为 \(\mathcal{O}( 阅读全文
posted @ 2020-03-13 14:22 RioTian 阅读(1525) 评论(0) 推荐(0)