![](https://img-blog.csdnimg.cn/20190302175203270.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法训练
LeetCode算法题目详解
CoolSuperman
点滴积累,成就不凡
展开
-
二叉树的前序|中序|后序遍历(144;94;145)
从图上来看如果我们想遍历一个二叉树,每个节点都要经历进来,中间,出去这三次前序遍历(进来)A-B-D-C-E-F递归思想(根->左->右)A根->B左–>C右B->D左->NULL右D->NULL左-&amp原创 2019-03-14 23:12:08 · 284 阅读 · 0 评论 -
DS:经典单链表题目-判断相交与带环,环入口节点,环长度问题详解
文章目录判断链表相交判断链表是否带环(要求时间复杂度为O(1))求链表带环时环的入口节点求环长度判断链表相交编写一个程序,找到两个单链表相交的起始节点。如下面的链表:在节点 c1 开始相交。注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。对,这里单链...原创 2019-03-12 23:10:27 · 189 阅读 · 0 评论 -
链表的中间节点&移除链表元素
链表的中间节点给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, an...原创 2019-03-11 18:09:08 · 354 阅读 · 0 评论 -
反转链表(两种实现)
反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL这道题目我们可以先创建一个新的表头,然后按正序每抓取到一个原链表的节点,就前插到这个新的链表里,最后我们就可以得到一个恰好为原链表反序的新链表:struc原创 2019-03-07 23:58:05 · 936 阅读 · 0 评论 -
罗马数字转整数,最长公共前缀,二进制求和
文章目录罗马数字转整数最长公共前缀二进制求和罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为...原创 2019-03-05 21:16:13 · 240 阅读 · 0 评论 -
验证回文串,两数之和II,移动零问题
两数之和II给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15],...原创 2019-03-02 17:50:26 · 121 阅读 · 0 评论 -
数组拆分I,数组形式的整数加法,种花问题
数组拆分I给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 10000].数...原创 2019-03-01 16:31:59 · 223 阅读 · 0 评论 -
买卖股票的最佳时机II,合并两个有序数组,字符串第一个唯一字符查找问题
买卖股票的最佳时机II给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4],输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时...原创 2019-02-27 22:27:16 · 130 阅读 · 0 评论 -
时间恒久远,汉诺塔永流传(C实现经典三柱汉诺塔)
还记得猩球崛起上威尔给凯撒的那个益智汉诺塔吗?我今天就百度了一下:法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片...原创 2019-02-16 19:50:29 · 453 阅读 · 0 评论 -
买卖股票的最佳时机I,删除排序数组重复项,有效括号判断问题
买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。...原创 2019-02-26 16:56:00 · 158 阅读 · 0 评论 -
爬台阶,Nim游戏,最大子序和问题
爬台阶假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶;2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶;1 阶 + 2 阶;2 阶 + 1 阶这个问...原创 2019-02-25 21:13:32 · 246 阅读 · 0 评论 -
整数反转,判断2的次幂,求众数问题
整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123, 输出: 321示例 2:输入: -123,输出: -321示例 3:输入: 120, 输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。我们抓取num最低位(%1...原创 2019-02-23 22:00:05 · 112 阅读 · 0 评论 -
缺失数字,回文数,宝石问题,有序数组的平方问题
1.缺失数字给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8int missingNumber(int* nums, int numsSize) {}这道题并不是很难,我们这里说说一种常规解法和一种快速解法:...原创 2019-02-21 19:01:44 · 171 阅读 · 0 评论