自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode—297.二叉树的序列化与反序列化(Serialize and Deserialize Binary Tree)——分析及代码(C++)

二、分析及代码1. 遍历(1)思路二叉树的序列化,实质就是以一定的规则遍历并存储二叉树的节点信息;根据需要,再基于同样的规则,将其中信息提取出来重新构成二叉树,完成反序列化。本题选用前序遍历的方法完成二叉树的序列化和反序列化。(还可以选用其他遍历方法,采用迭代或递归,思路都是类似的)(2)代码class Codec {public: // Encodes a tree to a single string. string serialize(TreeNode* root

2019-11-30 17:11:22 194

原创 Java设计模式精讲—课程笔记10(第25章 责任链模式 + 第26章 访问者模式 + 第27章 状态模式 + 第28章 课程总结)

Java设计模式精讲—课程笔记1025 责任链模式讲解+Coding+源码解析25.1 责任链模式讲解25.2 责任链模式coding25.3 责任链模式源码-servlet26 访问者模式讲解+源码解析26.1 访问者模式讲解26.2 访问者模式coding26.3 访问者模式源码-jdk-spring27 状态模式讲解+Coding+源码解析27.1 状态模式讲解27.2 状态模式Coding...

2019-11-29 16:55:33 191

原创 LeetCode—287.寻找重复数(Find the Duplicate Number)——分析及代码(C++)

二、分析及代码1. 双指针(1)思路根据题目,包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。对应地,如果设计一个指针 i,每次移动到 nums[i],由于存在重复整数,一定存在节点入度大于 1,即该指针的遍历轨迹中存在环,且重复整数为环的入口。因此可以设计两个运动速度不同的快慢指针,经过一段时间后它们会在环中相遇。之后寻找环入口的思路与 142.环形链表 II(Linked List Cycle II) 相同,将其中一个

2019-11-29 16:55:28 200

原创 Java设计模式精讲—课程笔记9(第21章 观察者模式 + 第22章 备忘录模式 + 第23章 命令模式 + 第24章 中介者模式)

Java设计模式精讲—课程笔记921 观察者模式讲解+Coding+源码解析21.1 观察者模式讲解21.2 观察者模式coding21.3 观察者模式源码解析-jdk-guava22 备忘录模式讲解+Coding+源码解析22.1 备忘录模式讲解22.2 备忘录模式coding22.3 备忘录模式源码解析-spring23 命令模式讲解+Coding+源码解析23.1 命令模式讲解23.2 命令...

2019-11-28 23:05:14 143

原创 LeetCode—283.移动零(Move Zeroes)——分析及代码(C++)

二、分析及代码1. 双指针 + 直接记录(1)思路设计 2 个下标,一个记录 i 当前遍历位置,另一个 j 记录当前非 0 元素的个数。遍历过程中:1)遇到 0 元素,当前位置下标 i++;2)遇到非零元素,j 对应位置记录当前遍历位置 i 的值,i++,j++。i 遍历完成后,j 往后的数直接记为0。(3)结果执行用时 :12 ms, 在所有 C++ 提交中击败了 98.69% 的用户;内存消耗 :9.5 MB, 在所有 C++ 提交中击败了 43.06% 的用户。2. 双指针 +

2019-11-28 23:04:50 221

原创 LeetCode—279.完全平方数(Perfect Squares)——分析及代码(C++/Java)

1. 动态规划设计一个长度为 n + 1 的数组 dp 记录各数值组成完全平方数所需的最少个数;对完全平方数 num,若第 i - num 个数值可达(记录的个数 != 0):1)若第 i 个数值当前不可达,则 dp[i] = dp[i - num] + 1;2)若第 i 个数值当前已可达,则 dp[i] = min(dp[i], dp[i - num] + 1)。遍历完可能的完全平方数后,dp[n]即为所需个数。 2. 数学方法(1)思路一个数最少的完全平方数组成有以下数学特点

2019-11-27 13:09:52 407

原创 LeetCode—253.会议室 II(Meeting Rooms II)——分析及代码(C++)

1. 起止时间分别排序(1)思路设计两个向量,分别记录所有会议的 开始时间 和 结束时间 并排序,用两个整数分别记录当前的 会议室数量 及 空余会议室数量。遍历 开始时间,依次处理:1)有 结束时间 < 当前开始时间,空余会议室数量++,指针指向下一 结束时间;2)若 空余会议室数量 = 0,会议室数量++;3)若 空余会议室数量 != 0,空余会议室数量–;因为排序后数组一定满足 第 i 个开始时间 < 第 i 个结束时间,过程不会出错。(2)代码class Solution {pu

2019-11-27 13:09:48 2515

原创 LeetCode——240.搜索二维矩阵 II(Search a 2D Matrix II)[中等]——分析及代码(C++、Java)

1. 从左下或右上搜索(1)思路若按下标从左上角搜索,由于向下、向右数值均单调递增,导致无法准确判断搜索方向;若从左下角搜索,则可以准确判断搜索方向:1)当前值 > target,搜索上方数值;2)当前值 < target,搜索右方数值;可以不断迭代,直至搜索到目标 target (true) 或 超出矩阵范围(false)。2. 二分搜索(1)思路先在矩阵的 45 度对角线上二分搜索,直至发现 target(返回true)或找到 matrix[i][i] < target < matri

2019-11-27 13:09:40 178

原创 LeetCode—239.滑动窗口最大值(Sliding Window Maximum)——分析及代码(C++、Java)

## 1. 双向队列### (1)思路设计一个升序排列的双向队列,即 front 为最小值,back 为最大值,每次遇到新元素时:1)队列头部小于新元素的部分,均符合 值 < 新元素 且 下标 < 新元素,依次全部 pop;2)队列尾部下标超出当前窗口范围的,依次 pop;3)从头部插入新元素;4)返回队列尾部的元素,即为滑动窗口的最大值。在此基础上,双向队列中可用下标替代元素值,简化实现过程。### (2)代码```cppclass Solution {public:

2019-11-25 20:39:57 218

原创 LeetCode—238.除自身以外数组的乘积(Product of Array Except Self)——分析及代码(C++)

LeetCode—238.除自身以外数组的乘积[Product of Array Except Self]——分析及代码[C++]一、题目二、分析及代码1. 依次相乘并记入答案(1)思路(2)代码(3)结果三、其他一、题目给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且

2019-11-24 16:23:09 125

原创 LeetCode—236.二叉树的最近公共祖先(Lowest Common Ancestor of a Binary Tree)——分析及代码(C++)

LeetCode—236.二叉树的最近公共祖先[Lowest Common Ancestor of a Binary Tree]——分析及代码[C++]一、题目二、分析及代码1. 递归(1)思路(2)代码(3)结果2. 中序遍历(1)思路(2)代码(3)结果三、其他一、题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能

2019-11-24 16:22:53 141

原创 Java设计模式精讲—课程笔记8(第18章 迭代器模式 + 第19章 策略模式 + 第20章 解释器模式)

Java设计模式精讲—课程笔记818 迭代器模式讲解+源码解析18.1 迭代器模式讲解18.2 迭代器模式代码解析18.3 迭代器模式源码解析(jdk+mybatis)19 策略模式讲解+Coding+源码解析19.1 策略模式讲解19.2 策略模式coding19.3 策略模式源码解析(jdk+spring)20 解释器模式讲解+源码解析20.1 解释器模式讲解20.2 解释器模式coding2...

2019-11-23 19:30:30 222

原创 Java设计模式精讲—课程笔记7(第15章 桥接模式 + 第16章 代理模式 + 第17章 模板方法模式)

Java设计模式精讲—课程笔记715 桥接模式讲解+Coding+源码解析15.1 桥接模式讲解15.2 桥接模式Coding15.3 桥接模式源码解析(jdk)16 代理模式讲解+Coding+源码解析16.1 代理模式讲解16.2 代理模式Coding-静态代理16.3 代理模式Coding-动态代理16.4 代理模式源码解析(jdk+spring+mybatis)17 模板方法模式讲解+Coding+源码解析17.1 模板方法模式讲解17.2 模板方法模式coding17.3

2019-11-23 16:49:16 174

原创 LeetCode—234.回文链表(Palindrome Linked List)——分析及代码(C++)

LeetCode—234.回文链表[Palindrome Linked List]——分析及代码[C++]一、题目二、分析及代码1. 原地翻转前半链表(1)思路(2)代码(3)结果2. 记录数值(1)思路(2)代码(3)结果三、其他一、题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetC

2019-11-23 16:49:05 189

原创 LeetCode—226.翻转二叉树(Invert Binary Tree)——分析及代码(C++)

LeetCode—221.最大正方形[Maximal Square]——分析及代码[C++]一、题目二、分析及代码1. 递归(1)思路(2)代码(3)结果2. 迭代(1)思路(2)代码(3)结果三、其他一、题目翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1备注:这个问题是受到 Max

2019-11-23 16:48:52 218

原创 LeetCode—221.最大正方形(Maximal Square)——分析及代码(C++)

LeetCode—221.最大正方形[Maximal Square]——分析及代码[C++]一、题目二、分析及代码1. 动态规划(优化后)(1)思路(2)代码(3)结果2. 逐行处理高度向量(1)思路(2)代码(3)结果三、其他一、题目在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4来源:力扣(LeetCode)链接:http

2019-11-23 16:48:41 395

原创 Java设计模式精讲—课程笔记6(第12章 适配器模式 + 第13章 享元模式 + 第14章 组合模式)

Java设计模式精讲—慕课网—课程笔记612 适配器模式讲解+Coding+源码解析12.1 适配器模式讲解12.2 适配器模式coding12.3 适配器模式源码解析(jdk+spring+springjpa+spingmvc)13 享元模式讲解+Coding+源码解析13.1 享元模式讲解13.2 享元模式Coding13.3 享元模式源码解析(jdk+tomcat)14 组合模式讲解+Coding+源码解析14.1 组合模式讲解14.2 组合模式Coding14.3 组合模式源

2019-11-22 18:32:17 125

原创 LeetCode—215.数组中的第K个最大元素(Kth Largest Element in an Array)——分析及代码(C++)

LeetCode—215.数组中的第K个最大元素[Kth Largest Element in an Array]——分析及代码[C++]一、题目二、分析及代码1. 排序(1)思路(2)代码(3)结果2. 优先队列(1)思路(2)代码(3)结果3. 快速排序(优化前)(1)思路(2)代码(3)结果4. 快速排序(优化后)(1)思路(2)代码(3)结果三、其他一、题目在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是

2019-11-21 17:33:47 195

原创 Java设计模式精讲—课程笔记5(第9章 原型模式 + 第10章 外观模式 + 第11章 装饰者模式)

Java设计模式精讲—慕课网—课程笔记59 原型模式讲解+Coding+源码解析9.1 原型模式讲解9.2 原型模式coding9.3 原型模式coding—克隆破坏单例9.4 原型模式源码解析10 外观模式讲解+Coding+源码解析10.1 外观模式讲解10.2 外观模式coding10.3 外观模式源码解析(springjdbc+myabtis+tomcat)11 装饰者模式讲解+coding+源码解析11.1 装饰者模式讲解11.2 装饰者模式coding11.3 装饰者

2019-11-19 22:38:02 163

原创 SELinux 拦截 vsftpd (提示 “failed to open directory")的一种解决方式

安装并配置完 vsftpd 后,能够成功连接到 ftp 上,但无法正常显示和访问目录。显示“failed to open directory",在命令行和浏览器端均无法查看其中文件。考虑到可能为 SELinux 拦截,参考资料设置 ftp_home_dir。相关命令:sudo setsebool -P ftp_home_dir 1设置后得到(输入 getsebool -a| grep ...

2019-11-18 20:55:34 3321 2

原创 LeetCode—208.实现 Trie (前缀树)(Implement Trie (Prefix Tree))——分析及代码(C++、Java)

LeetCode—208.实现 Trie [前缀树][Implement Trie [Prefix Tree]]——分析及代码[C++]一、题目二、分析及代码1. 前缀树(1)思路(2)代码(3)结果三、其他一、题目实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回

2019-11-18 14:41:33 371

原创 LeetCode—207.课程表(Course Schedule)——分析及代码(C++)

LeetCode—207.课程表[Course Schedule]——分析及代码[C++]一、题目二、分析及代码1. 广度优先搜索(1)思路(2)代码(3)结果2. 深度优先搜索(1)思路(2)代码(3)结果三、其他一、题目现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1

2019-11-18 14:41:26 666

原创 LeetCode—206.反转链表(Reverse Linked List)——分析及代码(C++)

LeetCode—206.反转链表[Reverse Linked List]——分析及代码[C++]一、题目二、分析及代码1. 迭代(直接记录前后节点)(1)思路(2)代码(3)结果2. 迭代(栈)(1)思路(2)代码(3)结果3. 递归(1)思路(2)代码(3)结果三、其他一、题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

2019-11-16 15:00:48 193

原创 LeetCode—200.岛屿数量(Number of Islands)——分析及代码(C++)

LeetCode—200.岛屿数量[Number of Islands]——分析及代码[C++]一、题目二、分析及代码1. 深度优先搜索(2)代码(3)结果三、其他一、题目给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010

2019-11-16 15:00:40 604

原创 LeetCode—198.打家劫舍(House Robber)——分析及代码(C++)

LeetCode—198.打家劫舍[House Robber]——分析及代码[C++]一、题目二、分析及代码1. 动态规划(写法一)(1)思路(2)代码(3)结果2. 动态规划(写法二)(1)思路(2)代码(3)结果三、其他一、题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置

2019-11-15 17:35:20 349

原创 LeetCode—169.求众数(Majority Element)——分析及代码(C++)

LeetCode—169.求众数[Majority Element]——分析及代码[C++]一、题目二、分析及代码1. 哈希表(1)思路(2)代码(3)结果2. 次数计数(1)思路(2)代码(3)结果3. 排序(1)思路(2)代码(3)结果三、其他一、题目给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:

2019-11-15 00:25:34 293

原创 LeetCode—160.相交链表(Intersection of Two Linked Lists)——分析及代码(C++、Java)

LeetCode—160.相交链表[Intersection of Two Linked Lists]——分析及代码[C++]一、题目二、分析及代码1. 双指针法(1)思路(2)代码(3)结果2. 哈希表(1)思路(2)代码(3)结果三、其他一、题目编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在这里插入图片描述在节点 c1 开始相交。示例 1:在这里插入图片描述输入:intersectVal = 8, listA = [4,1,8,4,5],

2019-11-14 23:54:24 132

原创 LeetCode—155.最小栈(Min Stack)——分析及代码(C++)

LeetCode—155.最小栈[Min Stack]——分析及代码[C++]一、题目二、分析及代码1. 辅助栈(1)思路(2)代码(3)结果2. 辅助map(1)思路(2)代码(3)结果三、其他一、题目设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStac

2019-11-14 18:07:58 611

原创 LeetCode—152.乘积最大子序列(Maximum Product Subarray)——分析及代码(C++)

LeetCode—152.乘积最大子序列[Maximum Product Subarray]——分析及代码[C++]一、题目二、分析及代码1. 动态规划(优化后)(1)思路(2)代码(3)结果2. 分类讨论(优化前)(1)思路(2)代码(3)结果三、其他一、题目给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2

2019-11-14 18:07:52 189

原创 Java设计模式精讲—慕课网—课程笔记4(第8章 单例模式)

Java设计模式精讲—慕课网—课程笔记38 单例模式讲解+Coding+源码解析8.1 单例模式讲解8.2 单例设计模式——懒汉式及多线程Debug实战8.3 单例设计模式——DoubleCheck双重检查实战及原理解析8.4 单例设计模式——静态内部类——基于类初始化的延迟加载解决方案及原理解析8.5 单例设计模式——饿汉式8.6 单例设计模式——序列化破坏单例模式原理解析及解决方案8.7 单例设计模式——反射攻击解决方案及原理分析8.8 单例设计模式—Enum枚举单例、原理源码解析以及

2019-11-13 18:08:45 277

原创 LeetCode—148.排序链表(Sort List)——分析及代码(C++)

LeetCode—148.排序链表[Sort List]——分析及代码[C++]一、题目二、分析及代码1. 归并排序(优化后)(1)思路(2)代码(3)结果2. 归并排序(优化前)(1)思路(2)代码(3)结果三、其他一、题目在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5来源:力扣(Le

2019-11-12 14:30:14 245

原创 LeetCode—146.LRU缓存机制(LRU Cache)——分析及代码(C++)

LeetCode—146.LRU缓存机制[LRU Cache]——分析及代码[C++]一、题目二、分析及代码1. 双向链表+哈希表(优化后)(1)思路(2)代码(3)结果2. 双向链表+哈希表(优化前)(1)思路(2)代码(3)结果三、其他一、题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数)

2019-11-12 14:30:02 552

原创 LeetCode—142.环形链表 II(Linked List Cycle II)——分析及代码(C++)

LeetCode—142.环形链表 II[Linked List Cycle II]——分析及代码[C++]一、题目二、分析及代码1. 双指针(1)思路(2)代码(3)结果三、其他一、题目给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2

2019-11-08 15:03:58 215

原创 LeetCode—141.环形链表(Linked List Cycle)——分析及代码(C++)

LeetCode—141.环形链表[Linked List Cycle]——分析及代码[C++]一、题目二、分析及代码1. 双指针(1)思路(2)代码(3)结果三、其他一、题目给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个

2019-11-08 15:03:49 164

原创 LeetCode—139.单词拆分(Word Break)——分析及代码(C++)

LeetCode—139.单词拆分[Word Break]——分析及代码[C++]一、题目二、分析及代码1. 动态规划(1)思路(2)代码(3)结果三、其他一、题目给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出

2019-11-08 15:03:26 327

原创 LeetCode—137.只出现一次的数字 II(Single Number II)[中等]——分析及代码(C++ & Java)

LeetCode—137.只出现一次的数字 II[Single Number II]——分析及代码[C++]一、题目二、分析及代码1. 设计“三进制”(1)思路(2)代码(3)结果三、其他一、题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]

2019-11-07 15:01:01 250

原创 LeetCode—136.只出现一次的数字(Single Number)——分析及代码(C++)

LeetCode—136.只出现一次的数字[Single Number]——分析及代码[C++]一、题目二、分析及代码1. 哈希表(1)思路(2)代码(3)结果2. 异或运算(1)思路(2)代码(3)结果三、其他一、题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1

2019-11-07 15:00:43 301

原创 LeetCode—128.最长连续序列(Longest Consecutive Sequence)——分析及代码(C++)

LeetCode—128.最长连续序列和[Longest Consecutive Sequence]——分析及代码[C++]一、题目二、分析及代码1. 哈希表(1)思路(2)代码(3)结果三、其他一、题目给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。来源:力扣(LeetCode)链接:https:/

2019-11-07 02:41:41 213

原创 LeetCode—124.二叉树中的最大路径和(Binary Tree Maximum Path Sum)——分析及代码(C++)

LeetCode—124.二叉树中的最大路径和[Binary Tree Maximum Path Sum]——分析及代码[C++]一、题目二、分析及代码1. 迭代(1)思路(2)代码(3)结果三、其他一、题目给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:

2019-11-07 02:06:36 327

原创 LeetCode—121.买卖股票的最佳时机(Best Time to Buy and Sell Stock)——分析及代码(C++)

LeetCode—121.买卖股票的最佳时机[Best Time to Buy and Sell Stock]——分析及代码[C++]一、题目二、分析及代码1. 一次遍历(1)思路(2)代码(3)结果三、其他一、题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第

2019-11-06 14:19:13 194

Eclipse2019_06代码自动补全取消空格等号org.eclipse.jface.text_3.15.200.v20190519-2344.jar

Eclipse2019_06代码自动补全取消空格等号org.eclipse.jface.text_3.15.200.v20190519-2344.jar

2019-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除