摘要:
150.逆波兰表达式求值 栈的应用:后缀表达式求值 点击查看代码 class Solution { public: int evalRPN(vector<string>& tokens) { stack<int> stk; for(int i = 0; i < tokens.size(); ++i) 阅读全文
摘要:
栈的常用接口: stack stk; stk.push(10); stk.pop(); stk.top() //返回栈顶元素的引用,可作为左值,也可作为右值 stk.empty() //判空 stk.size() 队列的常用接口: queue que; que.push(10); que.pop() 阅读全文
摘要:
151.翻转字符串里的单词 点击查看代码 class Solution { public: void reverseStr(string &str, int left, int right) { while(left < right) { swap(str[left], str[right]); + 阅读全文
摘要:
344.反转字符串 点击查看代码 class Solution { public: void reverseString(vector<char>& s) { //注意循环条件不能写成i != j,当s.size()为偶数时,i、j并不会落到同一位置 for(int i = 0, j = s.siz 阅读全文
摘要:
454.四数相加Ⅱ map作为哈希表 点击查看代码 class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) { 阅读全文
摘要:
哈希表概述 哈希表是根据key值直接进行访问的数据结构,一般用于快速查询一个元素(key值)是否出现过,是否在一个集合中,查询时间复杂度为O(1)。 常见的三种用于作哈希表的数据结构: 1、数组 本质上存放的也是键值对,只不过key值是数组下标 一般使用数组来做哈希的题目,是因为题目都限制了数值的大 阅读全文
摘要:
24.两两交换链表中的节点 点击查看代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} 阅读全文
摘要:
定义、创建、初始化一个链表节点 点击查看代码 Definition for singly-linked list. struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(in 阅读全文
摘要:
209.长度最小的子数组 (滑动窗口) 解法一:自创暴力解,先遍历完所有长度为1的子数组,再遍历所有长度为2的子数组,以此类推 点击查看代码 class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { // 阅读全文
摘要:
704.二分查找 点击查看代码 class Solution { public: int search(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1; //左闭右闭区间 while(left <= rig 阅读全文