LeetCode
文章平均质量分 54
司曹龙学编程
多学习 多努力 好好学编程
展开
-
LeetCode300 最长上升子序列
/*! * @file 最长上升子序列.cpp * @Date: 2018/03/22 17:22 * @author: sicaolong * @Contact: sicaolong@163.com * @brief: 思路: 1、memo的状态变换;number[i]与number[j]的大小关系; number[i]>number[j] me...原创 2018-03-22 18:34:51 · 407 阅读 · 0 评论 -
leetcode 21 合并两个有序链表
直接上代码 就不解释了 意义不大;/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {pub...原创 2018-08-06 17:17:01 · 107 阅读 · 0 评论 -
25. k个一组翻转链表
给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->...原创 2018-08-06 17:59:28 · 130 阅读 · 0 评论 -
61. Rotate List
Given a linked list, rotate the list to the right by k places, where k is non-negative.Example 1:Input: 1->2->3->4->5->NULL, k = 2Output: 4->5->1->2->3->NULLExplan...原创 2018-08-06 20:35:33 · 120 阅读 · 0 评论 -
leetcode 328 328. Odd Even Linked List 将链表的奇数偶数位置分开
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.You should try to do it in p...原创 2018-08-06 20:57:49 · 436 阅读 · 0 评论 -
leetcode 2 链表中的两数之和;
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807/** * Definition...原创 2018-08-07 10:11:50 · 347 阅读 · 0 评论 -
445. 两数相加 II
给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出...原创 2018-08-07 10:12:03 · 591 阅读 · 0 评论 -
leetcode 203. Remove Linked List Elements
思路:链表的删除 应该要建立一个虚拟节点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {p...原创 2018-08-07 10:12:17 · 99 阅读 · 0 评论 -
leetcode 82 82. Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.Example 1:Input: 1->2->3->3->4->4->5Output: 1->...原创 2018-08-07 10:12:23 · 120 阅读 · 0 评论 -
leetcode 24. Swap Nodes in Pairs 每两个结点反转一次
Given a linked list, swap every two adjacent nodes and return its head.Example:Given 1->2->3->4, you should return the list as 2->1->4->3.Note:Your algorithm should use only...原创 2018-08-07 10:12:29 · 157 阅读 · 0 评论 -
leetcode 147 Insertion Sort List
思路 :首先要知道插入排序的思想 就是从前往后遍历 当遇到一个数比前面的数小的时候 就把这个数 拿出来 把它插入它应该在的位置;所以 就要 当前结点的前一个结点的下一个结点 指向这个结点的下一个结点也就是pre-->cur--->pNext;pre->next=pNext;把cur这个结点拿出来 将它插入它应该在的位置; 需要从前遍历 如果结点比这个结点...原创 2018-08-07 10:12:36 · 147 阅读 · 0 评论 -
leetcode 148 重点中的重点 链表的排序
思路:时间复杂度 olongn 必须用 归并排序;归并排序的思想 就是分治的思想将整个链表分为两部分 ,假设这两部分是排序完成的就 直接 merge他们两个;需要几个函数 :get_mid找到链表的中间节点; merge()将两个有序的链表合并为一个链表CODE/** * Definition for singly-linked list. * struct Lis...原创 2018-08-07 10:12:47 · 203 阅读 · 0 评论 -
leetcode 23. Merge k Sorted Lists 合并k个有序链表
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.Example:Input:[ 1->4->5, 1->3->4, 2->6]Output: 1->1->2->3->4-...原创 2018-08-06 17:13:15 · 172 阅读 · 0 评论 -
leetcode 19. Remove Nth Node From End of List 删除倒数第n个节点;
Given a linked list, remove the n-th node from the end of list and return its head.Example:Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, t...原创 2018-08-06 16:38:21 · 134 阅读 · 0 评论 -
LeetCode 分割整数数组,分割为两部分的和相等
/*! * @file 数组分割.cpp * @Date: 2018/03/22 15:03 * @author: sicaolong * @Contact: sicaolong@163.com * @brief: 将数组分割成两部分,两部分的和相等的部分;判断是否存在这样的分割思路1:递归:1、先求出这个数组的和, 2、看这个和能不能被2整除,可以的话再进行...原创 2018-03-22 23:14:04 · 6291 阅读 · 1 评论 -
leetCode 最长升序子序列---动态优化
/*! * @file 最长上升子序列.cpp * @Date: 2018/03/22 17:22 * @author: sicaolong * @Contact: sicaolong@163.com * @brief: 思路: 1、memo的状态变换;number[i]与number[j]的大小关系; number[i]>number[j] me...原创 2018-03-22 23:15:22 · 1101 阅读 · 0 评论 -
leetCode 第二题 两个数的和
给定两个非空链表来代表两个非负整数,位数按照逆序方式存储,它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807 思路:1、设置一个进位标志overload;每...原创 2018-04-07 00:19:00 · 1864 阅读 · 0 评论 -
二叉树的三种遍历方式的 非递归遍历使用栈;
前序遍历:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */...原创 2018-05-26 16:25:53 · 765 阅读 · 0 评论 -
leetcode438. 找到字符串中所有字母异位词 -----滑动窗口的解法;
算法思想 :就是构建两个哈希表;class Solution {private: vector<int>result;public: vector<int> findAnagrams(string s, string p) { if(s.size()==0||p.size()==0) return res...原创 2018-06-04 00:11:48 · 1751 阅读 · 0 评论 -
LeetCode 60 n个数的第k个全排列;
思路:1、int index=k/dp[i];迭代找出它是属于nums数组中的以第几个元素开始的全排列;k=k%dp[i];是以index为开始的 第k个全排列;class Solution {public: string getPermutation(int n, int k) { string result=""; if(n<=0||k...原创 2018-06-01 09:37:23 · 646 阅读 · 0 评论 -
leetcode 84 柱状图的最大面积
题目:https://leetcode-cn.com/problems/largest-rectangle-in-histogram/description/给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。...原创 2018-07-25 17:02:38 · 414 阅读 · 0 评论 -
leetcode 95 96 不同的二叉搜索树
动态规划刷题1、leetcode96 不同的二叉搜索树描述:给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?思路: 就是利用二叉树的性质 根节点选定i之后 那么它的左子树的结点个数应该是 i -1;右子树的结点的个数应该是 n-i; 它是个和的形式 因为它有i个分配方式;左右子树的根节点数目不一样 对应不同的情况; 那么 它就应该累加起来;...原创 2018-07-26 10:31:04 · 554 阅读 · 0 评论 -
leetcode209. Minimum Size Subarray Sum
Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead.Example: Input: s = 7, ...原创 2018-08-02 14:33:05 · 106 阅读 · 0 评论 -
leetcode 92 Reverse Linked List II(反转m--n);
Reverse a linked list from position m to n. Do it in one-pass.Note: 1 ≤ m ≤ n ≤ length of list.Example:Input: 1->2->3->4->5->NULL, m = 2, n = 4Output: 1->4->3->2->5-...原创 2018-08-06 14:55:03 · 110 阅读 · 0 评论 -
leetcode 86. Partition List 将val值把分为左右两部分;
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 original relative order of the nodes in each of t...原创 2018-08-06 16:13:36 · 126 阅读 · 0 评论 -
143. Reorder List
题目 就是把一个链表的首节点与尾结点链接 次首位与次尾链接例如:1-->2-->3--->4 输出:1--4-->2-->3;思路 :将这个链表分为两部分 left 和right;(涉及到找到链表的中点的问题) 然后对右侧的进行一个reverse操作; 然后再分别从两个中取出元素;进行重新赋值到原来的链表中; 代码: /** ...原创 2018-08-07 10:12:54 · 104 阅读 · 0 评论