自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 【刷题笔记】第九天

2024-04-18 22:38:49 850

原创 【刷题笔记】第八天

dfs,并查集,gcd,lcm

2024-04-17 21:31:41 474

原创 【刷题笔记】第七天

并查集,dfs,gcd,lcm

2024-04-16 21:43:37 796

原创 【刷题笔记】第六天

迭代搜索

2024-04-15 21:38:08 314

原创 【刷题笔记】第五天

哈希表,大整数加,迭代搜索

2024-04-14 23:55:09 1006

原创 【刷题笔记】第四天

所以我们遍历所有的边,将那些v标记上,然后判断1到n的每一个节点,如果该节点为标记,则该节点可能为冠军。注意:冠军只能有一个,如果有多个节点未被标记,说明找不到冠军,就返回-1。由于冠军只能有一个,所以如果有多个入度为0的节点,则返回-1.位肯定都是1,第i位置为0,第i位置其他的元素也全为1.所有我们先统计所有节点的入度,入度为0的节点可能是冠军。,相当于将第二个0,移动到第一个0后面,1依次后移。中,包含由一些连续的相同字符所构成的分组。,除最后一个0外,其他位置的0变为1。

2024-04-13 13:17:06 804

原创 【刷题笔记】第三天

子数组or模板

2024-04-12 17:09:51 310

原创 【刷题笔记】第二天

遍历每一条边,如果边的两个节点不在一个集合,就合并,并计算边的and值。写在if里,就会忽略1这条边或者2这条边。因为假设and了1这条边,就不为-1了,当遍历2这条边的时候,不会执行if里的语句。深度优先遍历每一个节点,并计算联通块编号。1、两个点不在同一个联通块。2、两个点在一个联通块。

2024-04-11 20:28:28 232

原创 【刷题笔记】第一天

如果中位数大于k:就二分找到第一个大于k的位置,假设是i,从i位置到mid位置所有元素都变为k,所需要的操作次数=所以相当于求对字符串s操作k次,每次k减一,字符移动一位,最小字典项的字符串是什么。例如distance(“ab”, “cd”) == 4 (思考:改成输入 $10^5 $个询问,每个询问包含一个。字典序:abcd顺序,其中z和a的差值是1。首先也是先排序,然后判断中位数是否大于k。当k等于0时,表示s和t完全一样。,其中sum是前缀和数组。当k等于1时,表示只有。

2024-04-10 20:34:50 228 2

原创 【学习报告】10.17-10.23

在Python中a[i:j]表示复制字符串或数字从a[i]到a[j-1](也称【切片】)。

2022-10-24 09:47:09 610 1

原创 【学习报告】10.10-10.17

如果要实施dropout,正向传播和反向传播都要改变在不同层上实施dropout时,不同层的keep-prob可以不同,keep-prob越小,表示过拟合程度越大。当keep-prob等于1时,相当于不实施dropout。

2022-10-18 22:04:05 790

原创 【学习报告】10.3-10.10

一般计算神经网络层数时不算输入层,所以下图是二层的神经网络每个结点包含两个过程,一个是z=wx+b,另一个是激活函数。隐藏层和输出层都有参数w和b,第一层的w是4×3的矩阵,b是4×1的矩阵;第二层的w是1×4的矩阵,b是1×1的矩阵。

2022-10-10 09:41:31 295

原创 【学习报告】9.26-10.2

'''np.exp(x)x可以是一个数,也可以是一个矩阵返回e的x方输出:[ 2.71828183 7.3890561 20.08553692]

2022-10-03 19:20:15 354

原创 【学习报告】22.9.24-22.9.26

pytorch是一个基于Python的科学计算包。Pytorch是动态图优先,例如下图:计算图的搭建和运算是同时的,随时可以输出结果,因此非常的直观和易于调试。

2022-09-26 16:16:53 715

原创 【算法笔记】二叉树基本算法

分析:经实践所得,根结点是凹的,左子树的根结点是凹的,右子树的根结点是凸的,每一个结点的左孩子是凹的,每一个结点的右孩子是凸的。二:层序遍历,如果第一次遇到了一个结点只有左孩子没有右孩子,或者没有左孩子只有右孩子,那么往后的结点一定都是叶子结点。分析:解法1:执行中序遍历,当遍历的前一个结点是该结点时,输出当前结点,当前结点就是后继结点,时间复杂度O(N)二:如果X结点没有右子树,那么就一直往上找,直到结点不是父亲的右孩子,此时父亲就是后继结点。给定一个结点,如何找该结点中序遍历的后继结点。

2022-09-13 19:54:50 76

原创 二叉树的递归套路

树型dp

2022-09-13 19:54:26 271

原创 排序算法总结

排序总结

2022-07-28 21:27:39 150

原创 图的基本算法

基础知识图就是边和点的集合任何图都可以看做是有向图图的表示方式两种表示方法:邻接表和邻接矩阵最常用的表示方法是用二维数组表示:每一行第一个表示边的权重,第二个表示from结点的值,第三个表示to结点的值点的结构class Node {public: int value; int in;//入度 int out;//出度 list<Node*>nexts;//邻居结点(只包括由本身指向的结点) list<Edge*>edges;//从本身指出的边 Node(i

2022-04-01 22:07:01 382

原创 堆的基础学习

题目给定很多线段,每个线段都有两个数[start, end],表示线段开始位置和结束位置,左右都是闭区间。规定:1)线段的开始和结束位置一定都是整数值2)线段重合区域的长度必须>=1返回线段最多重合区域中,包含了几条线段例:有三个线段,[1,2],[2,3],[1,3],其中[1,2]和[1,3]重合或者[2,3]和[1,3]重合,所以返回2,但是[1,2]和[2,3]不重合(因为重合的长度是0)分析:解1 暴力方法先找出所有线段中开始位置的最小值minStart和结束位置的最大值

2022-03-31 20:27:28 2196

原创 并查集-初步了解

基础知识并查集:维持许多集合的数据结构假设有6个集合:{a},{b},{c},{d},{e},{f}bool isSameSet(a,e):查询两个元素是否在一个集合初始:每个集合都只有一个元素,所以指针都指向本身。设两个指针分别指向a,e,然后指针后移到末尾(把它称为代表结点),若两个指针的指向一致,则在一个集合里。void union(a,e)a所在集合的全体和e所在集合的全体合成一个集合比较a所在集合的元素个数和e所在集合的个数,小集合的末尾指向a两个重要优化:1.合并时是小的

2022-03-22 22:32:59 3135

原创 暴力搜索——回溯

理论回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案。一般可以解决如下几种问题:组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式棋盘问题:N皇后,解数独等等组合是不强调元素顺序的,排列是强调元素顺序。因此组合无序,排列有序。例题77. 组合回溯就是递归,所以按照递归三部曲来做参数:n,k固定参数,startIndex,从startindex开

2022-03-12 17:45:34 2086

原创 滑动窗口模板

滑动窗口模板/* 滑动窗⼝算法框架 */void slidingWindow(string s, string t) { unordered_map<char, int> need, window; for (char c : t) need[c]++; int left = 0, right = 0; int valid = 0; while (right < s.size()) {//左闭右开区间 // c 是将移⼊窗⼝的字符 char c = s[right];

2022-03-06 21:38:01 178

原创 【动态规划之斜率优化】

问题描述:给出5个参数,N,M,row,col,k,表示在N * M的区域上,李四初始在(row,col)位置,他一共要迈出k步,且每步都会等概率向上下左右四个方向走一个单位,任何时候李四只要离开N*M的区域,就直接死亡,走了k步之后,李四还在N * M区域的概率,即李四活着的概率。分析:每一步都有种可能,走k步一共4k种可能,计算有多少种可能在区域内(注意当走出区域后直接死亡)#include<iostream>#include<cmath>using namespace

2022-02-28 22:09:03 436

原创 【暴力递归之从左往右的尝试模型】

尝试模型什么是尝试?尝试是方法,是解题的步骤,也可以说尝试就是暴力递归,但是所有的动态规划都来自于暴力尝试,所有说尝试是解题的关键。本篇介绍第一个模型。从左往右的尝试模型子串:要求字符之间是连续的子序列:不要求连续例如“abc”的子串有“a”,“ab”,“abc”,“b”,“bc”,"c"这六个而子序列:abc,ab,ac,a,bc,b,c, 空串。ac表示子串,是子序列。如何打印子串?这个简单都不需要递归,三层循环就好了,外层循环确定子串开始位置,内层循环确定子串结束位置,最里面的一层保

2022-02-21 22:03:09 772

原创 螺旋矩阵之一套代码过三道题目

这篇博客讲解一下如何用一套代码过三道螺旋矩阵的题目先看第一道54. 螺旋矩阵首先要明确螺旋的循环方向:右下左上……,其次明确上下左右边界。明确这两点就不难做了一次循环一个方向就填一个值,这样就不会乱了class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int>re; int xn

2022-02-18 14:00:01 293

原创 【算法笔记】二叉树应用

226. 翻转二叉树解1 这其实也是层序遍历的应用,遍历每一层是先交换结点的左右孩子,然后将非空的左右结点入队。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * Tr

2022-02-11 18:05:49 642 1

原创 【算法笔记】前缀树

前缀树也叫字典树,是一种树性结构,核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。应用如下:快速查找某一字符串是否存在,字典树的查询时间复杂度是O(logL),L是字符串的长度。计算以某一字符串为前缀的字符串个数词频统计前缀树结点的定义如下:class TrieNode {public: int pass;//表示字符串通过该结点的次数 int end;//以该结点为结尾的字符串个数 vector<TrieNode*>next;//用

2022-02-08 19:29:01 590

原创 【算法笔记】二叉树之基础遍历

基础知识一. 二叉树的种类二叉树主要分为满二叉树、完全二叉树满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。深度为k的满二叉树,有2k-1个节点。完全二叉树:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h -1 个节点。二叉搜索树树上加上数值就是二叉搜索树,二叉搜索树是一个有序树。若它的左子

2022-01-29 11:26:12 1111 1

原创 【算法笔记】栈与队列

栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)。栈的底层实现可以是vector,deque,list , 主要就是数组和链表的底层实现。std::stack<int, std::vector<int> > third; // 使用vector为底层容器的栈...

2022-01-27 19:34:40 957

原创 【算法笔记】字符串

例题344. 反转字符串双指针,left指向最左边,right指向最右边,交换left和right的位置,直到left>=right.c++的reverse()就是字符串翻转函数。class Solution {public: void reverseString(vector<char>& s) { int left=0; int right=s.size()-1; while(left<right ){

2022-01-23 10:44:49 425 1

原创 【算法笔记】哈希表

基础知识哈希表定义:哈希表是根据关键码的值而直接进行访问的数据结构。哈希表就是数组。哈希表中的关键码就是数组的索引下标,然后通过下标直接访问数组中的元素应用场景:一般哈希表都是用来快速判断一个元素是否出现集合里。例如查询一个名字是否在这所学校里。,用哈希表时间复杂度O(1)。哈希函数,把学生的姓名直接映射为哈希表上的索引,然后就可以通过查询索引下标快速知道这位同学是否在这所学校里。哈希碰撞:两个学生映射的索引一样。解决方法:1. 拉链法:将发生碰撞的学生存在链表2. 线性探测法:前

2022-01-20 19:27:28 371

原创 【算法笔记】链表

203. 移除链表元素链表删除:对于单结点,需要找到删除结点的上一个结点,由于头结点没有上一个结点,可以采取以下两种方法。1.对头结点特殊处理ListNode* removeElements(ListNode* head, int val) { while(head!=nullptr&& head->val==val){ ListNode* temp=head; head=head->next;

2022-01-17 10:26:04 551 1

原创 【算法笔记】数组篇-双指针以及滑动窗口

27. 移除元素分析:解1 暴力解法:从前往后遍历,遇到相等的就整体往前 int removeElement(vector<int>& nums, int val) { int len=nums.size(); for(int i=0;i<len;i++){ if(nums[i]==val){ for(int j=i;j<len.

2022-01-14 16:38:05 558

原创 【算法笔记】数组篇-二分查找

二分查找前提是数组有序(假设数组非递减排列)步骤:设左右指针left,right找出中间的位置,如何判断该位置的值是否等于target若nums[mid]==target,则返回该位置下标若nums[mid]>target,则right=mid-1若nums[mid]<target,则left=mid+1mid的求法:mid=left+(right-left)/2或mid=left+((right-left)>>1)注意:算数运算符的优先级比移位运算符高。对

2022-01-12 11:54:25 729 4

原创 【学习笔记】java基础语法

目录1. 注释2. 标识符3. 数据类型4. 类型转换5. 常量6. 运算符正文1.注释单行注释 //单行注释多行注释 /* 多行注释 */文档注释/** * @decription 描述 * @author 作者 */2. 标识符任何变量、方法都有一个名字,这个名字就是标识符所有的标识符都由字母、、数字或者下划线组成,且只能以字母、、数字或者下划线组成,且只能

2022-01-11 17:04:29 235 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除