C++
文章平均质量分 71
LeeTioN
书写是为了更好地思考。
展开
-
[LeetCode] 2.Add Two Numbers
题目描述题目大致的意思是给输入是两个非负的数字,数字由链表存储,一个节点存储一个数,比如342存储为2 -> 4 -> 3。 在题目中所给的测试样例Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 0 -> 8Explanation: 342 + 465 = 807.思路这道题和在国内经常做的大数加法由异曲同工之妙,我记原创 2018-02-02 20:02:07 · 221 阅读 · 0 评论 -
[LeetCode]快慢指针笔记[142和287]
这里是LeeTioN的博客快慢指针一般用于判断一个链表是否存在环的问题 142. Linked List Cycle II思路在寻找环的入口时,我们将设置两个指针,快指针和慢指针。初始化时,将快指针和慢指针都指向头结点,在遍历时,快指针每次移动两个节点,慢指针每次移动一个节点。 当链表存在环时,因为快指针每次会比慢指针快一步,所以会在N次循环后,在环内的某一点相遇。 当他们第...原创 2018-02-27 10:44:41 · 725 阅读 · 0 评论 -
[LeetCode]329. Longest Increasing Path in a Matrix —— DFS和动态规划
这里是LeeTioN的博客这两天一直在刷Top interview 中的BFS和DFS的题目,这道题我一开始只用了深度优先搜索,发现快到最后的一个case超时了,于是看了Discuss里面,大牛们用到了动态规划的思想,于是恍然大悟。这道题的目的是给定一个整形数的矩阵,让我们求出一个最长的递增序列,序列是通过数字上下左右四个方向联系起来,首先让我想到的就是DFS方法,当matrix[i][j...原创 2018-03-10 00:15:15 · 438 阅读 · 0 评论 -
[LeetCode]207. Course Schedule 课程表
原题大致意思是有从编号0到n-1的课程,输入一个二维数组,表示两两课程之间的前置关系,[0, 1]表示必须修完1号课程才能修0号课程。问题是给定一个课程的前置关系,让我们判断这个关系是否合理。(如[[0,1], [1,0]]即为矛盾的课程关系)稍微想一下,我们就可以想出来可以用一个图来表示课程之间的前置关系。这道题是拓扑排序的典型应用。原创 2018-03-03 21:52:47 · 2997 阅读 · 0 评论 -
[LeetCode]297. Serialize and Deserialize Binary Tree 序列化和反序列化二叉树
因为不太了解C++中string流的概念,看了好几个discuss,终于半推半就地懂了。先简单介绍一下string流。 sstream中定义的istringstream和ostringstream,也是这道题要用到的两个类,题目的目的是想让我们从文件中读取存储好的二叉树的序列,将其序列化和反序列化,我们也可以将其理解成构造函数和析构函数两种操作。原创 2018-03-21 21:53:33 · 386 阅读 · 0 评论 -
[LeetCode]Palindromic String 回文串系列(三道题)
这里是LeeTioN的博客在LeetCode做了三道经典的回文串的题目,分别是 5. Longest Palindromic Substring 最长回文子串 516. Longest Palindromic Subsequence 最长回文子序列 647. Palindromic Substrings 回文子串个数最长回文子串描述:给定一个字符串,找出它里面最长的回文子串,...原创 2018-04-29 23:03:03 · 416 阅读 · 0 评论 -
第K小元素问题(C++)
Description用分治法编程解决在n个数当中找第K小元素问题(注意:不能用排序)。Input第一行输入n的值,第二行输入n个数,第三行输入K的值。Outputn个数中的第K小元素。Sample Input58 1 3 6 93Sample Output6#include <iostream.h>int a[100];void swap(int &a,int &...原创 2014-03-21 19:37:05 · 5674 阅读 · 2 评论