
算法
文章平均质量分 73
flowral
等风来
展开
-
【力扣每日一题】438. 找到字符串中所有字母异位词 双指针+滑动窗口双解法
原题地址:438. 找到字符串中所有字母异位词本来博主以为对双指针等模板题已经滚瓜烂熟了并且打算从此以后不再写算法博客的,今天做到这个题看到双指针解法我直呼妙!在纸上写了半天终于想明白那一瞬间的开心终于把前几天口红掉进厕所的悲伤覆盖了hhh。题意倒是不难。这里用双指针能很巧妙地还原count的状态。其实也算是双指针的模板题555因为双指针真的用得不难,我以后再也不说我对模板题滚瓜烂熟了(果然板子还是不能硬背)双指针解法class Solution {public: vector<原创 2021-12-10 22:05:53 · 448 阅读 · 0 评论 -
洛谷 P1090 合并果子(贪心)和 洛谷 P1880 石子合并(区间dp)比较
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为 1 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最原创 2021-11-13 22:56:11 · 304 阅读 · 0 评论 -
【AcWing算法基础】第三讲 搜索与图论
一、DFS1.1 排列数字是全排列的问题,很经典的dfs题,没什么难度,硬敲就行#include<iostream>using namespace std;const int N = 10;int n;int path[N];bool st[N];void dfs(int cnt){ if(cnt==n){ for(int i=0;i<n;i++){ cout<<path[i]<<" ";原创 2021-11-06 16:01:43 · 306 阅读 · 0 评论 -
【摩尔投票】找出序列中占总数1/2、1/3以上的数
一、占总数1/2面试题 17.10. 主要元素三叶姐姐的题解已经讲得很清楚了。就是代码可能要理解一下:class Solution { public int majorityElement(int[] nums) { int n = nums.length; int x = -1,cnt = 0; for(int num : nums){ if(cnt == 0){ x = num;原创 2021-10-22 15:24:50 · 166 阅读 · 0 评论 -
【AcWing算法基础】第二讲 数据结构
1、单链表2、双链表3、栈3.1 模拟栈3.2 表达式求值4、队列5、单调栈6、单调队列7、KMP8、Trie9、并查集原创 2021-10-20 19:16:30 · 815 阅读 · 0 评论 -
【AcWing算法基础】第一讲 基础算法
虽然说有常用的模板,但是更习惯自己写的。4、高精度4.1 高精度加法#include<iostream>#include<vector>#include<string>using namespace std;int main(){ string A,B; cin>>A>>B; vector<int> a,b,c; for(int i=A.size()-1;i>=0;i--) a.原创 2021-10-15 18:25:35 · 242 阅读 · 0 评论 -
【刷题记录】精选算法100道
跟着这篇博客在刷分类一:dp1、打家劫舍class Solution { int max = 0; public int rob(int[] nums) { int len = nums.length; int[][] dp = new int[len+1][2]; //dp[i][0]表示要偷第i家 //dp[i][1]表示不偷第i家 dp[0][0] = 0; dp[1][1] = 0原创 2021-09-28 18:45:46 · 316 阅读 · 0 评论 -
【字符串】系列解题
一些常见的字符串问题求解。原创 2021-09-25 10:00:28 · 103 阅读 · 0 评论