07 2024 档案
回溯问题
摘要:目录一、子集型回溯17.电话号码的字母组合78.子集131.分割回文串257.二叉树的所有路径784.字母大小写全排列LCP 51.烹饪料理二、组合型回溯77.组合216.组合总和Ⅲ22.括号生成39.组合总和三、排列型回溯46.全排列 参考资料:回溯算法套路 一、子集型回溯 17.电话号码的字母组
都好,万般皆为体验
摘要:有他人的陪伴,和自己一人的独处,形成了自己人生中独一无二的风景 如果无人相伴,那就自己陪伴着自己,历经人世的风雨 如果有佳人相伴,则也是别样的心欢 我总要放过他人,或许还有别的人等待着他们的救赎 我也总要放过我自己,对过往的留念何尝不是人生的另一种绚烂,要知道,没有人会一直陪着你,但会一直有人陪着你
反转链表
摘要:注意:反转结束后,从原来的链表上看, 指向反转这一段的末尾, 指向反转这一段后续的下一个节点。 206.反转链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListN
162. 寻找峰值
摘要:题目链接: 法一、暴力 class Solution { public: int findPeakElement(vector<int>& nums) { int n = nums.size(); if (n == 1) return 0; if (n == 2) { if (nu
2517. 礼盒的最大甜蜜度
摘要:题目链接: 最小化最大值 二分答案 找左性质的右边界,所以最后二分结束后返回的是 猜一个答案 ,两件商品价格相差 表示差距的最小值维持在 ,可以选择当前商品。统计选择的商品数量,若商品数量小
2439. 最小化数组中的最大值
摘要:题目链接: 看到“最小化最大值”想到二分答案。我们猜测一个上界 , 越大越符合条件,越小越不易符合条件,满足单调性。由于当前维护的是数组经过操作是否满足最大值为 ,可以从后往前遍历,遇到比 大的
滑动窗口
摘要:滑动窗口使用前提: 连续子数组。 有单调性。本题元素均为正数,这意味着只要某个子数组满足题目要求,在该子数组内的更短的子数组同样也满足题目要求。 一、不定长滑动窗口(求最短/最小) 209.长度最小的子数组 class Solution { public: int minSubArrayLen(in
位运算
摘要:1、__builtin_popcount 的使用 1.1 1的数量 #include <bits/stdc++.h> using namespace std; using i64 = long long; void solve() { int x; cin >> x; int t = __built
相向双指针
摘要:167. 两数之和Ⅱ-输入有序数组 class Solution { public: vector<int> twoSum(vector<int>& numbers, int target) { vector<int> ans; int n = numbers.size(); int l = 0,
AtCoder Beginner Contest 043
摘要:D - Unbalanced 只需要找到形如 、 的字串即可。即两个相同字符之间最多间隔一个字符。 证明:若不然, ,每加一个字符 ,都要增加多余字符 ,不可能符合要求。 #include <bits/stdc++.h> using na
AtCoder Beginner Contest 042
摘要:C - Iroha's Obsession 用一个 数组把每一位标记,然后枚举大于 的数,一旦有各位都满足要求的数出现就 。 #include <bits/stdc++.h> using namespace std; using i64 =