![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
线性结构
三块桌布
这个作者很懒,什么都没留下…
展开
-
lc 122.easy买卖股票的最佳时机II(***贪心算法)
评论https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/comments/87652class Solution {public: int maxProfit(vector<int>& prices) { int len=prices.size(), sum=0; if(len<=1) return 0; for(int i=1;i..原创 2020-11-17 00:09:32 · 127 阅读 · 0 评论 -
lc 1122.easy 数组的相对排序
自己写的class Solution {public: vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2) { vector<int> ans; int len1=arr1.size(); int added[len1]; memset(added,0,sizeof(added)..原创 2020-11-17 00:04:58 · 102 阅读 · 0 评论 -
lc 327.hard区间和的个数【*****递归】
327. 区间和的个数难度 困难给定一个整数数组nums,返回区间和在[lower, upper]之间的个数,包含lower和upper。区间和S(i, j)表示在nums中,位置从i到j的元素之和,包含i和j(i≤j)。说明:最直观的算法复杂度是O(n2) ,请在此基础上优化你的算法。示例:输入: nums = [-2,5,-1], lower = -2, upper = 2,输出: 3 解释: 3个区间分别是: [0,0], [2...原创 2020-11-08 00:17:40 · 119 阅读 · 0 评论 -
lc57.hard 插入区间(区间重叠的判断,扩大待插入区间的范围,***找到插入位置)
class Solution {public: vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) { int len=intervals.size(); int start=newInterval[0], end=newInterval[1]; vec...原创 2020-11-04 23:25:13 · 115 阅读 · 0 评论 -
lc 941.easy有效的山脉数组(cmp lc845数组中的最长山脉)
又是模拟爬山,不过要简单很多,一定是先上再下。class Solution {public: bool validMountainArray(vector<int>& A) { int len=A.size(), i=1; if(len<3) return false; while(i<len && A[i]>A[i-1]) ++i; if(i==1 || i==len..原创 2020-11-03 23:17:52 · 65 阅读 · 0 评论 -
lc 845.middle数组中的最长山脉
欧买噶,第一次自己做出了middle,鸡冻!!官方题解https://leetcode-cn.com/problems/longest-mountain-in-array/solution/shu-zu-zhong-de-zui-chang-shan-mai-by-leetcode-sol/我是强行模拟爬山过程,用类似贪心的思想,每次记下最长山脉。代码看起来很长,其实思路很单纯的!然后我发现像这种模拟其实挺麻烦的,需要各种数据来检错,覆盖所有情况。。class Solution {pub..原创 2020-10-25 11:22:36 · 89 阅读 · 0 评论 -
lc 349.easy两个数组的交集(数组,我用的unordered_set哈希表)
官方题解https://leetcode-cn.com/problems/intersection-of-two-arrays/solution/liang-ge-shu-zu-de-jiao-ji-by-leetcode-solution/我:class Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { ..原创 2020-11-02 22:19:22 · 131 阅读 · 0 评论 -
lc 1207.独一无二的出现次数(数组)
自己写的嘻嘻嘻class Solution {public: bool uniqueOccurrences(vector<int>& arr) { sort(arr.begin(), arr.end()); int len=arr.size(), cnt=0; if(len<=1) return true; vector<int> re; for(int i=1;i<..原创 2020-10-28 22:32:56 · 77 阅读 · 0 评论 -
lc 1365.[easy]有多少小于当前数字的数字【***计数排序】
官方题解https://leetcode-cn.com/problems/how-many-numbers-are-smaller-than-the-current-number/solution/you-duo-shao-xiao-yu-dang-qian-shu-zi-de-shu-zi--2/最朴素的方法:二重循环class Solution {public: vector<int> smallerNumbersThanCurrent(vector<int&g..原创 2020-10-26 23:34:46 · 66 阅读 · 0 评论 -
lc 876.链表的中间结点【***链表 - 快慢指针】
官方题解https://leetcode-cn.com/problems/middle-of-the-linked-list/solution/lian-biao-de-zhong-jian-jie-dian-by-leetcode-solut//** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x)..原创 2020-10-20 22:28:22 · 79 阅读 · 0 评论 -
lc 19.删除链表的倒数第N个节点(链表,***快慢指针)
官方题解https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/solution/shan-chu-lian-biao-de-dao-shu-di-nge-jie-dian-b-61/我看的代码https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/comments/105722class Solution {public: Li..原创 2020-10-29 20:35:17 · 171 阅读 · 0 评论 -
lc 141.环形链表【****神奇的快慢指针】【*****双指针的用途】
官方题解https://leetcode-cn.com/problems/linked-list-cycle/solution/huan-xing-lian-biao-by-leetcode-solution/【*****链表双指针用途】https://leetcode-cn.com/problems/linked-list-cycle/solution/yi-wen-gao-ding-chang-jian-de-lian-biao-wen-ti-h-2//** * Definition f..原创 2020-10-09 23:16:41 · 102 阅读 · 0 评论 -
lc 142.环形链表II【返回入环结点,①***用哈希表;②*****快慢指针,如何利用相遇点 找到入环点?】
官方题解https://leetcode-cn.com/problems/linked-list-cycle-ii/solution/huan-xing-lian-biao-ii-by-leetcode-solution/①***用哈希表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val..原创 2020-10-10 14:46:59 · 84 阅读 · 0 评论 -
lc 234.[easy]回文链表(快慢指针,翻转链表,比较两个链表)->lc143
欧买噶,鸡冻,第一次自己写出通过了,而且就是空间O(1)。用了前面学的快慢指针找中间结点,翻转链表,比较两个链表。注意找的中间结点是n/2向下取整,然后翻转n/2向上取整处的链表。n为奇数时,l1会多一个结点,此时整个链表也是回文,返回true。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : v..原创 2020-10-23 22:22:25 · 96 阅读 · 0 评论 -
lc 143.重排链表【****①找中间结点;②翻转中间结点之后的链表,形成两个链表;③合并两个链表】
官方题解https://leetcode-cn.com/problems/reorder-list/solution/zhong-pai-lian-biao-by-leetcode-solution//** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ..原创 2020-10-20 23:43:08 · 110 阅读 · 0 评论 -
lc 763.划分字母区间(字符串,双指针)【***贪心算法】
官方题解https://leetcode-cn.com/problems/partition-labels/solution/hua-fen-zi-mu-qu-jian-by-leetcode-solution/class Solution {public: vector<int> partitionLabels(string S) { vector<int> re; int endc[26], len=S.size(); ...原创 2020-10-22 23:52:43 · 204 阅读 · 0 评论 -
lc 925.长按键入(字符串,双指针)
官方题解https://leetcode-cn.com/problems/long-pressed-name/solution/chang-an-jian-ru-by-leetcode-solution/class Solution {public: bool isLongPressedName(string name, string typed) { int i=0, j=0, len1=name.size(), len2=typed.size(); w..原创 2020-10-21 22:16:18 · 155 阅读 · 0 评论 -
lc 922. easy按奇偶排序数组 II【***双指针】
自己写的超时了class Solution {public: vector<int> sortArrayByParityII(vector<int>& A) { for(int i=0;i<A.size();++i){ if(i%2==0 && A[i]%2==1){ for(int j=i+1;j<A.size();++j) ..原创 2020-11-12 23:41:53 · 98 阅读 · 0 评论 -
lc 206.反转链表
迭代法:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head) { if(!head ||..原创 2020-10-20 22:45:47 · 70 阅读 · 0 评论 -
lc 24.两两交换链表中的节点(链表,交换顺序)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(ne...原创 2020-10-13 23:35:22 · 129 阅读 · 0 评论 -
lc 844.比较含退格的字符串【①重构字符串,然后比较;②***逆序遍历字符串】
官方题解https://leetcode-cn.com/problems/backspace-string-compare/solution/bi-jiao-han-tui-ge-de-zi-fu-chuan-by-leetcode-solu/①重构字符串,然后比较class Solution {public: bool backspaceCompare(string S, string T) { string s,t; int i; ...原创 2020-10-19 23:29:12 · 70 阅读 · 0 评论 -
lc1002.查找常用字符(字符串数组)
class Solution {public: vector<string> commonChars(vector<string>& A) { int minfre[26], fre[26]; vector<string> re; if(!A.size()) return re; memset(minfre,100,26*sizeof(int)); for(int i...原创 2020-10-15 15:13:17 · 76 阅读 · 0 评论 -
lc 2.两数相加(链表)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(ne...原创 2020-10-04 22:31:31 · 115 阅读 · 0 评论 -
单链表翻转(小练习)
#include<iostream>using namespace std;int n; struct Node{ Node* next; int data;};void create(Node* head){ Node* p=head; for(int i=n-1;i>=1;--i) { Node* newNode=new Node; //开辟新结点 newNode->data=i; newNode->next=NULL; //记原创 2020-06-05 22:57:13 · 116 阅读 · 1 评论 -
Pop Sequence
7-3 Pop Sequence (25分)Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, if M is 5 an原创 2020-06-05 17:04:07 · 117 阅读 · 0 评论 -
Reversing Linked List
7-2 Reversing Linked List (25分)Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must output 4→3→2→1原创 2020-06-05 17:02:29 · 77 阅读 · 0 评论 -
一元多项式的乘法与加法运算
习题3.6 一元多项式的乘法与加法运算 (20分)设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例:1原创 2020-06-05 17:00:31 · 222 阅读 · 0 评论 -
两个有序链表序列的合并
习题2.5 两个有序链表序列的合并 (15分)本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node PtrToNode;struct Node {ElementType Data; / 存储结点数据 /PtrToNode Next; / 指向下一个结点的指针 /};typedef PtrToNode List; / 定义原创 2020-06-05 16:58:09 · 130 阅读 · 0 评论 -
二分查找
习题1.8 二分查找 (20分)本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode List;struct LNode {ElementType Data[MAXSIZE];Position Last; / 保存线性表中最后一个元素的位置 */};L是用户传入的一个线性表,其中ElementTyp原创 2020-06-05 16:55:43 · 305 阅读 · 0 评论 -
Maximum Subsequence Sum
7-1 Maximum Subsequence Sum (25分)#include<iostream>using namespace std;int main(){ int k; cin>>k; int a[k]; int i; for(i=0;i<k;i++) cin>>a[i]; int thisSum=0,maxSum=-1; //如果有子列和为0的话,会进入if,改变leftindex和rightindex! int l原创 2020-06-05 16:48:07 · 94 阅读 · 0 评论 -
最大子列和问题
实例1.1 最大子列和问题 (20分)#include<iostream>using namespace std;int main(){ int k; cin>>k; int x; int thisSum=0,maxSum=0; for(int i=0;i<k;i++) { cin>>x; thisSum+=x; if(thisSum>maxSum) maxSum=thisSum; else if(thi原创 2020-06-05 16:45:05 · 73 阅读 · 0 评论