随笔分类 -  LeetCode

摘要:https://www.cnblogs.com/TenosDoIt/p/3738693.html 阅读全文
posted @ 2019-02-23 10:04 牧马人夏峥 阅读(119) 评论(0) 推荐(0) 编辑
摘要:思路:为了爬到n层楼梯,有两个选择,在n-1阶前进1步 or 在 n-1阶前进2步,即f(n) = f(n-1) + f(n-2) 阅读全文
posted @ 2019-01-09 16:58 牧马人夏峥 阅读(178) 评论(0) 推荐(0) 编辑
摘要:思路:面积为高度×宽度,分别指向首尾两个元素,并记录此时的面积,当移动首尾时,宽度减小,如果移动高度较大的元素,面积必定减小,所以此时 应该移动较小的元素。 阅读全文
posted @ 2019-01-07 20:57 牧马人夏峥 阅读(123) 评论(0) 推荐(0) 编辑
摘要:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 阅读全文
posted @ 2018-09-18 22:28 牧马人夏峥 阅读(197) 评论(0) 推荐(0) 编辑
摘要:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 思路:定义三个指针prev, cur, next。注意nex 阅读全文
posted @ 2018-09-12 22:03 牧马人夏峥 阅读(97) 评论(0) 推荐(0) 编辑
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 思路:定义两个指针,一快一慢,快指针先走n步,然后一起走,快指针到达尾结点时,慢指针的下一个即是要被删除的结点。 阅读全文
posted @ 2018-09-12 21:23 牧马人夏峥 阅读(99) 评论(0) 推荐(0) 编辑
摘要:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 阅读全文
posted @ 2018-09-10 21:45 牧马人夏峥 阅读(126) 评论(0) 推荐(0) 编辑
摘要:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 示例 2: 阅读全文
posted @ 2018-09-09 15:33 牧马人夏峥 阅读(123) 评论(0) 推荐(0) 编辑
摘要:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 思路 :判断当前结点与其下一个结点值是否相等,相等则删除下一个节点 class Solution { publ 阅读全文
posted @ 2018-09-09 14:53 牧马人夏峥 阅读(106) 评论(0) 推荐(0) 编辑
摘要:Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. You should preserve the 阅读全文
posted @ 2018-09-09 14:44 牧马人夏峥 阅读(175) 评论(0) 推荐(0) 编辑
摘要:输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL1、迭代法,超时 ListNode* reverseList(ListNode* head) { if(!head || !head->next)return head; ListNode dummy(-1); ListNode* prev = &dum... 阅读全文
posted @ 2018-09-04 22:58 牧马人夏峥 阅读(121) 评论(0) 推荐(0) 编辑
摘要:https://leetcode.com/problems/distinct-subsequences/ Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequen 阅读全文
posted @ 2017-01-06 19:52 牧马人夏峥 阅读(240) 评论(0) 推荐(0) 编辑
摘要:https://leetcode.com/problems/decode-ways/ A message containing letters from A-Z is being encoded to numbers using the following mapping: Given an enc 阅读全文
posted @ 2017-01-05 10:42 牧马人夏峥 阅读(115) 评论(0) 推荐(0) 编辑
摘要:很不好想的一道题,参考:http://blog.csdn.net/doc_sgl/article/details/11832965 分为两步:把原矩阵转为直方图,再用largest rectangle求解:http://www.cnblogs.com/573177885qq/p/5537334.ht 阅读全文
posted @ 2016-12-28 20:18 牧马人夏峥 阅读(194) 评论(0) 推荐(0) 编辑
摘要:leetcode上的一道题,求[1,2,3]的所有子集,相当于求1和[2,3]所有子集的集合,因此先求[2,3]的子集,进而先 求[3]的子集,因此可以用递归来做。在这个过程中,需要保存路径。 阅读全文
posted @ 2016-12-12 17:33 牧马人夏峥 阅读(468) 评论(0) 推荐(0) 编辑
摘要:动态规划 int minimumTotal (vector<vector<int>>& triangle) { for (int i = triangle.size() - 2; i >= 0; --i) for (int j = 0; j < i + 1; ++j) triangle[i][j] 阅读全文
posted @ 2016-09-05 10:29 牧马人夏峥 阅读(95) 评论(0) 推荐(0) 编辑
摘要:vector<vector<int>> generate(int num) { vector<vector<int>> result; vector<int> array; for (int i = 1; i <= num; i++) { for (int j = i - 2; j > 0; j-- 阅读全文
posted @ 2016-08-08 10:49 牧马人夏峥 阅读(93) 评论(0) 推荐(0) 编辑
摘要:思路很简单,将string转为int,计算完后再转为string,但要简洁的实现起来并不容易。 typedef vector<int> bigint; bigint make_bigint(string const& s) { //将字符串转为vector<int> bigint n; //将s中的 阅读全文
posted @ 2016-08-08 09:46 牧马人夏峥 阅读(140) 评论(0) 推荐(0) 编辑
摘要:这题还是很有难度的。通过数组记录元素的长度,将目标数组与其进行比较,再对相应的子串进行缩小,并记录相应的起点与长度。 提取包含子串的最小窗口,可以是无序的。 1、建立一个256个大小的ASCII数组,统计子串中每个字符出现的次数; 2、用两个指针,一个指针表示窗口的起始位置,一个不断后移直至这个窗口 阅读全文
posted @ 2016-08-02 15:55 牧马人夏峥 阅读(179) 评论(0) 推荐(0) 编辑
摘要:struct Interval{ int start; int end; Interval() :start(0), end(0){} Interval(int s, int e) :start(s), end(e){} }; vector<Interval> insert(vector<Inter 阅读全文
posted @ 2016-08-02 14:34 牧马人夏峥 阅读(111) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示