03 2024 档案

摘要:20.有效的括号 遇到左括号入栈,遇到右括号弹出 bool isValid(string s) { stack<char> kuohao; char c; for (char a : s) { switch (a) { case'(': case'{': case'[': kuohao.push(a 阅读全文
posted @ 2024-03-31 20:29 daydayup_cpp 阅读(2) 评论(0) 推荐(0) 编辑
摘要:理论基础 栈和队列是STL(C++标准库)里面的两个数据结构 STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器) 栈的内部结构,栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现 我们常用的SGI STL,如果没有指 阅读全文
posted @ 2024-03-31 15:35 daydayup_cpp 阅读(12) 评论(0) 推荐(0) 编辑
摘要:28.实现 strStr() KMP算法 KMP算法:字符串匹配问题,提前构建next表 next表(前缀表):利用成功匹配的经验,长度为t的前后缀相匹配,next[j]=t next表再改进:利用失败匹配的经验,如果P[j]和P[t]相等,仍然是徒劳? 阅读全文
posted @ 2024-03-31 13:51 daydayup_cpp 阅读(3) 评论(0) 推荐(0) 编辑
摘要:344反转字符串 void reverseString(vector<char>& s) { char tmp; int i = 0, j = s.size() - 1; while (i<j) { tmp = s[i]; s[i] = s[j]; s[j] = tmp; i++; j--; } } 阅读全文
posted @ 2024-03-30 22:58 daydayup_cpp 阅读(15) 评论(0) 推荐(0) 编辑
摘要:454四数相加II(哈希-map) 暴力:n⁴ 分别遍历a+b和c+d:2n² int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) { int count = 阅读全文
posted @ 2024-03-30 16:43 daydayup_cpp 阅读(3) 评论(0) 推荐(0) 编辑
摘要:哈希表理论基础 用法:一般哈希表都是用来快速判断一个元素是否出现集合里,哈希法牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找 eg:例如要查询一个名字是否在这所学校里,要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1)就可以做到 阅读全文
posted @ 2024-03-29 20:52 daydayup_cpp 阅读(5) 评论(0) 推荐(0) 编辑
摘要:24两两交换列表元素 ListNode* swapPairs(ListNode* head) { ListNode* shead = new ListNode(); //初始化 shead->next = head; ListNode* cur = shead; ListNode* tmp; //确 阅读全文
posted @ 2024-03-23 20:48 daydayup_cpp 阅读(4) 评论(0) 推荐(0) 编辑
摘要:链表理论基础 链表节点的定义 struct ListNode { int val; // 节点上存储的元素 ListNode *next; // 指向下一个节点的指针 ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数 }; ==如果不自己定义构造函 阅读全文
posted @ 2024-03-23 15:45 daydayup_cpp 阅读(5) 评论(0) 推荐(0) 编辑
摘要:977有序数组的平方 1.暴力算法(先平方,后排序)的时间复杂度是O(n+logn),没有充分有序性 2.双指针法 相向的双指针,利用有序性(从两侧出发找较大值) 新数组—辅助空间 vector的初始化参考 关于局部变量result的return,vector的初始化是动态内存分配 vector<i 阅读全文
posted @ 2024-03-21 23:31 daydayup_cpp 阅读(12) 评论(0) 推荐(1) 编辑
摘要:数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合 数组可以依赖索引高效访问 O(1) 数组在增删等动态操作中效率较低,牵一发而动全身 O(n) 举一个字符数组(大小为1)的例子 Q:二维数组[行][列]的内存空间地址是连续的吗? A:不同编程语言的内存管理不同,但在C++中是连续的 在没 阅读全文
posted @ 2024-03-20 15:45 daydayup_cpp 阅读(53) 评论(0) 推荐(1) 编辑

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