08 2022 档案

摘要:思路: 当字符串为运算符号是弹出栈中两个数字进行运算 stoi("1") 将string转换为int class Solution { public: int evalRPN(vector<string>& tokens) { stack<int> stack; for (int i = 0; i 阅读全文
posted @ 2022-08-27 09:59 hjy94wo 阅读(16) 评论(0) 推荐(0) 编辑
摘要:class Solution { public: string removeDuplicates(string s) { stack<char> stack; for (int i = 0; i < s.size(); i ++) { if (stack.empty() || s[i] != sta 阅读全文
posted @ 2022-08-27 09:18 hjy94wo 阅读(14) 评论(0) 推荐(0) 编辑
摘要:class Solution { public: bool isValid(string s) { stack<char> stack; for (int i = 0; i < s.size(); i ++) { if (s[i] == ')' || s[i] =='}' || s[i] == '] 阅读全文
posted @ 2022-08-27 09:10 hjy94wo 阅读(11) 评论(0) 推荐(0) 编辑
摘要:思路: 一个队列用于备份,先将原队列最后一位元素之前的元素弹出,push进备份队列,后再还原 class MyStack { public: queue<int> queue1; queue<int> queue2; //备份 MyStack() { } void push(int x) { que 阅读全文
posted @ 2022-08-26 19:22 hjy94wo 阅读(16) 评论(0) 推荐(0) 编辑
摘要:思路: 用两个栈实现队列 pop操作,若out栈为空则先将in中元素push进out,再pop出out中元素 peek操作,直接调用pop,在将pop出元素push进out class MyQueue { public: stack<int> in; stack<int> out; MyQueue( 阅读全文
posted @ 2022-08-26 19:10 hjy94wo 阅读(19) 评论(0) 推荐(0) 编辑
摘要:思路 将子链表切割下来并记录左节点前一个节点pre和右节点下一个节点sucess 反转子链表后,pre指向反转后的子链表,左节点(此时为子链表的尾节点指向sucess) /** * Definition for singly-linked list. * struct ListNode { * in 阅读全文
posted @ 2022-08-26 10:48 hjy94wo 阅读(13) 评论(0) 推荐(0) 编辑
摘要:思路: 将链表数据存入vector用双指针解决 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) 阅读全文
posted @ 2022-08-26 10:08 hjy94wo 阅读(11) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : 阅读全文
posted @ 2022-08-26 09:26 hjy94wo 阅读(12) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : 阅读全文
posted @ 2022-08-24 19:15 hjy94wo 阅读(12) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : 阅读全文
posted @ 2022-08-24 16:53 hjy94wo 阅读(11) 评论(0) 推荐(0) 编辑
摘要:思路: 快慢指针法:当快指针与慢指针相遇时,分别从起点,相遇点开始走,相遇即为环入口 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) 阅读全文
posted @ 2022-08-24 14:14 hjy94wo 阅读(24) 评论(0) 推荐(0) 编辑
摘要:/** Definition for singly-linked list. struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; */ class Solution { publi 阅读全文
posted @ 2022-08-24 11:41 hjy94wo 阅读(14) 评论(0) 推荐(0) 编辑
摘要:思路: 先翻转链表再删除第n个节点再翻转链表 删除第n个节点需要pre指向head节点再用cur记录删除节点的前一个节点 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; 阅读全文
posted @ 2022-08-24 11:05 hjy94wo 阅读(11) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : 阅读全文
posted @ 2022-08-24 10:39 hjy94wo 阅读(11) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : 阅读全文
posted @ 2022-08-24 10:05 hjy94wo 阅读(14) 评论(0) 推荐(0) 编辑
摘要:class Solution { public: string reverseWords(string s) { //操作分解 //1. 反转字符串 //2. 反转单词中字符串 //两步交换也行 reverse(s.begin(), s.end()); int k = 0; //记录改变后字符串 f 阅读全文
posted @ 2022-08-23 17:57 hjy94wo 阅读(24) 评论(0) 推荐(0) 编辑
摘要:思路: 每次移动2k位,判断是否超过数组,超过则全部反转,没超过则反转到第i+k个 class Solution { public: string reverseStr(string s, int k) { for (int i = 0; i < s.size(); i += (2 * k)) { 阅读全文
posted @ 2022-08-23 17:10 hjy94wo 阅读(12) 评论(0) 推荐(0) 编辑
摘要:``` class Solution { public: void reverseString(vector<char>& s) { int left = 0, right = s.size() - 1; while (left < right) { swap(s[left ++], s[right 阅读全文
posted @ 2022-08-23 16:56 hjy94wo 阅读(7) 评论(0) 推荐(0) 编辑
摘要:思路: 双指针 当右指针指向不为val的数是则此数为我们需要的答案交换左右指针值并且左指针右一一位 class Solution { public: int removeElement(vector<int>& nums, int val) { int l = 0; for (int r = 0; 阅读全文
posted @ 2022-08-23 16:52 hjy94wo 阅读(16) 评论(0) 推荐(0) 编辑
摘要:### 整数n的二进制数的第k位数```n >> k & 1``` ### lowbit运算```lowbit(x)x & (~x + 1) = x & (-x)``` ### AcWing 801. 二进制中1的个数```#include <iostream> using namespace st 阅读全文
posted @ 2022-08-23 15:09 hjy94wo 阅读(13) 评论(0) 推荐(0) 编辑
摘要:双指针模板 for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑 } AcWing 799. 最长连续不重复子序列 #include <iostream> using namespa 阅读全文
posted @ 2022-08-23 15:07 hjy94wo 阅读(34) 评论(0) 推荐(0) 编辑
摘要:前缀和 思路:求l到r区间的和用前r个数减去前l - 1个数. #include <iostream> using namespace std; const int N = 100010; int a[N], s[N]; int main() { int n, m; scanf("%d%d", &n 阅读全文
posted @ 2022-08-23 11:04 hjy94wo 阅读(29) 评论(0) 推荐(0) 编辑
摘要:LeetCode 367. 有效的完全平方数 思路: 核心为最后一步判断当二分结束后值为及接近一个整数的浮点数(如2.9xxxx)此时加上极小数(1e-6)取整再平方,若与num相等则为完全平方数 class Solution { public: bool isPerfectSquare(int n 阅读全文
posted @ 2022-08-22 18:50 hjy94wo 阅读(15) 评论(0) 推荐(0) 编辑
摘要:LeetCode 69. x 的平方根 思路: 浮点数二分修改版 因为返回的是整数所以二分分三类讨论 mid * mid == x 该情况mid为x的平方根 mid * mid > x 该情况mid大于x的平方根 mid * mid < x 该情况mid小于x的平方根(可能为答案也可能不是因为要求整 阅读全文
posted @ 2022-08-22 18:38 hjy94wo 阅读(14) 评论(0) 推荐(0) 编辑
摘要:34. 在排序数组中查找元素的第一个和最后一个位置 思路: 与AcWing 789一致 class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { if (nums.size() == 0) re 阅读全文
posted @ 2022-08-22 18:21 hjy94wo 阅读(16) 评论(0) 推荐(0) 编辑
摘要:LeetCode 704. 二分查找 思路: 直接套模板 class Solution { public: int search(vector<int>& nums, int target) { int l = 0, r = nums.size() - 1; while (l < r){ int m 阅读全文
posted @ 2022-08-22 17:16 hjy94wo 阅读(17) 评论(0) 推荐(0) 编辑
摘要:LeetCode 35. 搜索插入位置 思路 直接利用二分模板 注意右指针开始为nums.size()而不是nums.size() - 1因为有可能在最后一位插入 class Solution { public: int searchInsert(vector<int>& nums, int tar 阅读全文
posted @ 2022-08-22 17:12 hjy94wo 阅读(17) 评论(0) 推荐(0) 编辑
摘要:整数二分模板 l = mid这个模板mid需要+1 int bsearch_1(int l, int r) { while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; // check()判断mid是否满足性质 else l = 阅读全文
posted @ 2022-08-22 15:08 hjy94wo 阅读(39) 评论(0) 推荐(0) 编辑
摘要:###快速排序 步骤 确定分界点:q[l], q[(l+r)/2], q[r], 随机 调整区间 递归处理 void quick_sort(int q[], int l, int r) { if (l >= r) return; //递归结束条件 int i = l - 1, j = r + 1, 阅读全文
posted @ 2022-08-22 10:55 hjy94wo 阅读(31) 评论(0) 推荐(0) 编辑

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