自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DFS深度优先搜索 LeetCode-417

这道题需要定义的变量较多,要记录已经遍历过的,能流到太平洋和大西洋的坐标分别记在对应的集合。此外用一个标志位offset,能流到太平洋的offset等于10,能流到大西洋的offset等于100。上面图只是帮助理解,因为最外面肯定能流到太平洋或者大西洋,所以offset初始值为10或者100,真正的遍历过程并非如此,但是都是从外面的一圈开始遍历,向上下左右满足条件的方向遍历,然后赋予对应的offset值。解题关键在于DFS函数的编写,根据深度优先搜索的思想,步骤如下:1、定义一个矩阵matrix..

2021-08-30 20:00:33 337

原创 DFS解决迷宫问题

DFS解决树的问题比较常见也比较简单,通常用栈来解决。现在来看看DFS怎么解决迷宫问题,理解好这个解题思路可以扩展到解更复杂的题。在起点位置按右,下,左,上的顺序遍历,比如上图,起点右边为空,则走到右边(第1步);第1步的右边为障碍物则判断下方是否为空,为空即走第二步;同理第二步优先判断能否往右走,若右边为障碍物则判断下、左、右;直到到达终点。下图为遍历出来的其中一条路线。按照这个原理可以找出每一条路线,记录每一条路线的总长,得到最短的路径长度。class Solution { int p,q;

2021-08-30 19:57:51 2447 2

原创 BFS代码核心框架

一、BFS:使用队列保存未被检测的点,结点按照宽度优先的次序被访问和进出队列。下面用树来讲述BFS。例题 牛客网NC15import java.util.*;public class Solution { public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) { // write code here ArrayList<ArrayList<Int

2021-08-29 16:11:47 503

原创 BFS广度优先搜索 LeetCode-433

例题1(LeetCode 433)解题思路:因为从start到end过程中,每次基因变化都得是基因库bank里面存在的基因,如上面示例2:AACCGGTT 变到 AAACGGTA:AACCGGTT----AACCGGTA----AACCGGTA;经历了两次基因变化,变化过程中的AACCGGTA、AACCGGTA都是基因库中有的。求最少的变化次数则考虑用广度优先搜索。步骤1.首先判断start是否等于end;基因库中是否存在end;2.遍历基因库bank,把与start相差一个字符的(因为

2021-08-28 23:52:54 172

原创 并查集总结

1.作用并查集,顾名思义“合并”和“查找”,是一种树形的数据结构,合并一些不相交的集合以及查找根节点等问题,可以用来解决连通性问题。下面用一个例子“诠释”这个合并和查找的问题:假设某市里有10个小镇,两个小镇之间的连线表示连接该两个小镇的路,比如小镇1和小镇2直接相连,小镇1和小镇3间接相连。“查”:给你两个小镇,让你判断两个小镇是否相连(直接相连或者间接相连),则查找每个小镇的“根节点”是否相同,如果“根节点”为同一个镇的话则说明这两个镇是相连的,否则不相连。“并”:问这些小镇是否已经全连通,如

2021-08-11 22:52:28 117

原创 单调栈总结

一、单调栈1.单调栈中存放的数据是有序的单调递增栈:从栈顶到栈底单调第增;单调递减栈:从栈顶到栈底单调第减。2.声明单调栈Deque<E> stack = new ArrayDeque<>();Deque是Queue的子接口,我们知道Queue是一种队列形式,而Deque则是双向队列,它支持从两个端点方向检索和插入元素,因此Deque既可以支持LIFO形式也可以支持LIFO形式.Deque接口是一种比Stack和Vector更为丰富的抽象数据形式,因为它同时实现了以上两

2021-08-10 19:39:49 106

原创 分治算法总结

一、使用情形:子问题与原问题性质相同,子问题相互独立。分-治-合:1、分解子问题;2、解决子问题;3、合并子问题解为原问题的解二、非递归分治包括:选择排序、插入排序、冒泡排序、堆排序1、选择排序:n个元素的排序问题转化为n-1次选择最小值问题把6、3、1、7、4按从小到大顺序排|6|3|1|7|4| ------------------|1|6|3|7|4||6|3|7|4|---------------------|3|6|7|4||6|7|4|----------------------

2021-08-10 11:22:59 1722

原创 动态规划总结

一、动态规划的题目大致可以归纳为三种类型:1.计数型:如计算达到目标状态的方法数;2.求最值型:如求升子序最长的长度、以最少硬币凑指定面值;3.存在性:如能否选出k个数的和等于sum。二、解题步骤1.确定最终状态确定最终状态要做两个工作:1)达到最优策略有哪几种方式;2)由最优策略(即大问题)转为一个个子问题。2.转移方程写出子问题的通式。3.确定初始条件,和边界情况(要细心,考虑周全)4.计算顺序三、计数型例题LeetCode-70题1.确定最终状态:爬到n阶有两种方法:从(n

2021-08-07 16:24:27 88

原创 leetcode-445两数相加

题目:一、主要操作1、进栈出栈:考虑到要从链尾开始相加,还要考虑进位,所以采用进栈出栈的方法,先所有链表的数进栈,出栈的时候链尾的数相加。stack1 = [] #定义一个栈# 入栈函数def push_stack(p,stack): while p: stack.append(p.val) p = p.next# 调用入栈函数push_stack(l1,stack1) # l1为需要入栈的链表2、用头插法进行逆序:因为链尾先相加,相加结果依然要放到链尾,故要用头插法进行逆序

2021-05-05 11:33:42 64

原创 LeetCode-206反转链表

官网给出了两个方法:递归法和迭代法递归法代码class Solution: def reverseList(self, head: ListNode) -> ListNode: if head == None or head.next == None://递归终止条件 return head p = self.reverseList(head.next) head.next.next = head .

2021-04-29 15:33:39 47

原创 LeetCode-160相交链表

题目:下面代码相当于将A和B首尾连接起来,遍历一遍class Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode: n1, n2 = headA, headB while n1!=n2: # while循环实现的效果为上图内容 n1 = n1.next if n1 else headB # n1从A链表从头指向链

2021-04-28 20:31:18 86

原创 LeetCode刷题笔记-两数相加,ListNode

在LeetCode上刷题时对listnode的使用不是很理解。ListNode是一个类:class ListNode: def __init__(self, val=0, next=None): self.val = val # val为变量值, self.next = next # next为下一节点的指针定义ListNode为链表的一个节点,该节点存储了两个变量val和next,即该节点值和下一个节点的指针,当next为空时表示该节点是链表的最后一个

2021-04-27 19:41:17 1103 3

原创 pytorch自学教程(四)

pytorch中如何加载数据一、pytorch数据主要涉及两个类:dataset和dataloader1、dataset提供一种方式去获取数据及其label:1)如何获取每一个数据及其label2)告诉我们总共有多少的数据(神经网络是经常要对一个数据迭代多次,当我们知道有多少数据需要训练的时候,他才知道我们要训练多少次才能把数据迭代完,进行下一次迭代)2、dataloader为后面的网络提供不同的数据形式二、Dataset代码实践1、首先下载一个数据集,链接:https://pan.baidu

2021-04-06 21:36:00 304

原创 pytorch自学教程(三)

本内容为初学者自学笔记,如有错误,欢迎指出一、pytorch学习中两大法宝函数把pytorch看作一个工具箱,工具箱里面有几个分隔区,每个分隔区有几种工具或者更小的工具箱;1、dir():打开工具箱,看看里面有什么比如:dir(pytorch),则输出1、 2、 3、 4.。。。个分隔区接着dir(pytorch.3),则输出a, b, c几个工具2、help():说明书help(pytorch.3.a),则输出该工具的用途,如何使用二、将两大法宝函数用起来1、打开pycharm,按照上一

2021-04-01 19:54:59 216

原创 pytorch自学教程(二)

pytorch自学教程(二)本文内容为初学者自学笔记,如有错误,欢迎指出一、 安装pycharm安装教程略二、新建项目点击create,创建完成。在界面下方对话框输入import pytorch,如下图所示表示成功导入。然后检查能不能使用conda指令,输入torch.cuda.is_available(),返回True则说明...

2021-03-31 14:35:32 211 2

原创 解决torch.cuda.is_available()返回False的问题

解决torch.cuda.is_available()返回False的问题返回false有可能是电脑不支持CUDA,也有可能是版本不匹配。首先,pytorch和cuda要有对应的关系,具体参考https://blog.csdn.net/weixin_43839245/article/details/108274605显卡驱动路径:C:\NVIDIA\DisplayDriver\461.92\Win8_Win7_64\International...

2021-03-31 11:21:44 811

原创 pytorch自学教程(一)

pytorch自学教程(一)一、anaconda安装首先需要下载anaconda,它里面包含了大量的package(工具包),平时在深度学习、机器学习中一个个安装package很麻烦,而且容易出现一些问题。于是就有了anaconda,他是一个集成了应用于科学分析的大量的package的一个软件,也就是只要你安装了anaconda就安装了后面我们要用的大量package。进入网站https://repo.anaconda.com/下载之后,双击安装,记住安装路径,后面选择默认安装成功后,在开始菜

2021-03-30 10:08:31 7636 2

空空如也

空空如也

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

TA关注的人

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