自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深度学习知识点大杂烩

1、环境安装安装相应的环境是进行深度学习的第一步,一般比较困难的无非就是GPU版的某某包, 如tensorflow-gpu、pytorch-gpu。这里给出相应的别人总结的博客链接:实验室服务器安装cuda9.0,cudnn,Anaconda,tensorflow-gpu在服务器上安装tensorflow-gpu版本及其使用Linux环境下GPU版本的pytorch安装提醒:无论安装何...

2020-05-02 21:10:03 361

原创 数据结构算法

数据结构常用算法--Leetcode练习

2022-08-17 20:26:20 180 1

原创 Python 2022华为秋招软件岗机试

第一题:求山峰面积求解山峰面积问题,给定一个数组,每个元素值非负,表示山峰的高度,0表示平地。所有相互连接(上下左右)的凸起的高地构成山脉,求最大的山脉面积(一个元素的底面积为1)。比较简单,其实就是求最大岛屿的问题,只是这里不再是进行加一操作,而是加上当前元素值。第二题:外卖员到达指定楼层最短时间外卖员当前处在第N层,需要到达第M层,他每分钟可以选择走楼梯,上一层或者下一层,或者坐电梯到达第2*N层。楼层总共L(< =10 ^ 5)层。输入:一行包含两个数字N,M输出:最短的时间采

2021-08-09 17:29:12 667 1

原创 Python Leetcode单源最短路径之两种权值下求解最小值

电动车游城市这题的思路就是需要进行拆点,即将一个单元节点拆分成多个。由于每一个节点处,可以有(cnt + 1)种加油量,即可以将一个原始点拆成独立的(cnt + 1)个点。具体的:1.建立邻接表2.单源最短路径,采用最小堆实现3.记忆化,剪枝from collections import defaultdictfrom heapq import *class Solution: def electricCarPlan(self, paths: List[List[int]], cn

2021-08-04 16:43:46 308

原创 Python 最短路径之存在某种限制条件下求最小值

最近总结路径规划的方法,其中被Dijkstra, SPFA, 优先队列,BFS方法整蒙,有以下几点:SPFA即可以用deque实现(朴素),也可以用heapq实现Dijkstra即可以用deque实现(朴素),也可以用heapq实现heapq实现的SPFA/Dijkstra,跟优先队列的方法有区别吗?BFS不就是朴素的Dijkstra吗?while循环中什么时候可以return,什么时候不能return其中总结方法最棘手的是求存在某种限制条件下的最小值,即规定时间内达到终点的最小花费和K站中

2021-08-04 00:11:41 608

原创 Python 2020华为提前批机试--任务调度求最大收益

输入:第一行输入总共的任务数量m接下来m行,每行两个数字,表示任务的截止时间和该任务的收益(1单位时间可以完成一个任务)输出:最大的收益这类题往往采用贪心+优先队列的思想进行求解,代码如下:from heapq import *m = int(input())arr = []for _ in range(m): arr.append(list(map(int, input().split())))def funer(arr): arr.sort() pq = .

2021-08-02 19:04:58 1148

原创 Python Leetcode二叉树求解最长路径问题

某公司的机试,给定一棵树,一个目标值,求从根节点到叶子节点和为目标值的最长序列长度or路径。输入:第一行:m, target,表示节点数目和目标值第二行:root, 表示根节点接下来m行,每一行四个数字,前三个分别表示父亲节点、左儿子和右儿子(0表示不存在,节点标号从1开始),第4个数表示父节点的值。输出:最长路径代码如下:# 二叉树:求指定目标和下的最长的序列长度from collections import defaultdictm, targetNum = map(int, inp

2021-07-29 12:28:57 1065

原创 Python Leetcode会求最长递增子序列长度还不够?

最近做某公司的笔试,遇到了一道求最长递增子序列!最长递增子序列!最长递增子序列!注意不是求长度,而是求序列-_-.(如果存在多个解,则输出字典序最小的那个子序列)当时人都傻了,一直做的是求长度,这次还上升了一个档次,当时时间紧没想出来(一个小时10道选择题,3道编程题,我想知道这时间安排合理么)今天想了一下,才发现也很简单,我们先看求最长递增子序列长度的代码:class Solution: def lengthOfLIS(self, nums: List[int]) -> int:

2021-07-29 12:11:39 168

原创 Python Leetcode980不同路径III

不同路径III看了某同学今天的华为机试题,发现其第三题就跟这题一样,于是拿出来做一做。典型的回溯算法练习题,代码如下:class Solution: def __init__(self): self.out = 0 def uniquePathsIII(self, grid: List[List[int]]) -> int: dircetions = [(1, 0), (-1, 0), (0, 1), (0, -1)] m, n

2021-07-28 21:30:14 78

原创 Python 滑雪问题

滑雪这道题有两种解法,一种是采用记忆化+DFS,一种是采用记忆化+DP,前者会TLE(1.2s了!!!),后者AC(32ms左右!!!)记忆化+DP大法好!下面分别来看一下这两者的代码记忆化搜索m, n = map(int, input().split())grids = []for _ in range(m): grids.append(list(map(int, input().split())))class Solution: def find(self, gri

2021-07-13 10:46:49 201

原创 Python SPFA算法 Leetcode规定时间内达到终点的最小花费

规定时间内达到终点的最小花费从题目看就应该可以看出这是一个双权重的问题(约束条件有两个,一个是时间限制,一个是cost最小化),与787. K站内最便宜的航班类似。参考讲解:Python3 - Modified Djikstra’sPython modified Dijkstra / hybrid SPFAThis is sort of like Dijkstra on fees, with times “along for the ride”. Typically, Dijkstra stor

2021-07-13 02:00:09 473

原创 Python Leetcode网络延迟时间一题多解

网络延迟时间典型的单源最短路径问题,解决这种问题的常用方法有优先队列,DFS, BFS, Dijkstra, Bellman-Ford, SPFA, Floyd-Warshall,下面就对该题采用这7种方法进行求解。PriorityQueue注意这里使用优先队列,while循环内部不进行return返回,这与无向图求解最短时间/路径不一样,注意区别!似乎发现优先队列中,使用heapq比使用PriorityQueue效率更高?from collections import defaultdict

2021-07-02 01:08:10 535

原创 Python单源最短路径算法汇总

1.Floyd2.Min-Tree3.Dijkstra4.Bellman-Ford5.SPFA

2021-06-29 17:02:44 3832

原创 2021.华为机试某题

问题描述:有M*N的节点矩阵,每个节点可以向8个方向(上、下、左、右及四个斜线方向)转发数据包,每个节点转发时会消耗固定时延,连续两个相同时延可以减少一个时延值(即当有K个相同时延的节点连续转发时可以减少K- 1个时延值),求左上角(0,0)开始转发数据包到右下角(M-1,N- 1)并转发出的最短时延。输入:第一行两个数字,M、N,接下来有M行,每行有N个数据,表述M* N的矩阵。输出:最短时延值。示例1:3 30 2 21 2 12 2 1输出:3示例2:3 32 2 22

2021-06-29 16:17:53 1946 1

原创 2021.5.7华为实习机试题

快两个月了才想起之前做的华为机试的第三题还没有解决掉,通过这几天对路径规划问题的学习,已经掌握了一点这种类型的讨论了。该题大概意思如下:给定一个起点src,要求骑车到达某个终点的最短时间,单位路程等于耗电量。输入输出如下:'''第一行输入的数据表示:城市的个数、充满电的电容量C、耗电量/路程(=时间)的系数、充满电所需时间/待充满电量的系数、起点、终点第二行数据表示:道路的条数,之后的每3个数一组,表示道路直接连通的第一个城市ID、第二个城市ID、之间的距离第三行表示:加油站的个数、加油站的ID

2021-06-26 12:09:50 797

原创 Python leetcode之使用二分查找最大值最小化/最小值最大化

该类题型一般采用二分法、回溯或两者组合求解的方法。划分为K个相等的子集题解回溯求解class Solution(object): def canPartitionKSubsets(self, nums, k): nums.sort() target, v = sum(nums) // k, sum(nums) % k if v or nums[-1] > target: return False while nums a

2021-05-18 16:54:05 1687

原创 Python leetcode最短路径问题

网格中内有不同的数字,数字表示某种特性,求解从起点到终点所需的最小值。该类问题常用广度优先搜索方法BFS,优化可采用双向BFS,另外也可以尝试使用DP。该类型题可以总结出以下模板:def bfs(nums): m = len(nums); n = len(nums[0]) visited = {(0, 0)} # 记录已访问的方格 q = [(0, 0, 1)] # 括号里面前两个数字表示已访问的方格的坐标,第三个数表示到达当前方格所需要是操作步数 directio

2021-05-10 18:01:54 1149 2

原创 Python 算法戳气球

题目描述:有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。 这里的 i - 1 和 i + 1 代表和 i 相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。求所能获得硬币的最大数量。示例 1:输入:nums = [3,1,5,8]输出:167解释:

2021-04-18 18:49:21 481

原创 Python Leetcode之回文串相关

回文子串是要连续的,回文子序列可以不是连续的! 回文子串、回文子序列都是动态规划经典题目。回文子串题目讲解class Solution: def countSubstrings(self, s: str) -> int: if not s: return 0 n = len(s) dp = [[False] * n for _ in range(n)] res = 0 for i in range(n -

2021-04-17 23:45:41 80

原创 Python Leetcode买卖股票

所有股票问题基本都可以使用动态规划进行求解。本文所使用的动态规划方法均参考一下链接:买卖股票专题讲解买卖股票之只能一次交易# # 一次遍历# class Solution:# def maxProfit(self, prices: List[int]) -> int:# max_p = 0# min_p = prices[0]# for i in range(1, len(prices)):# min

2021-04-14 17:03:59 236 1

原创 Python Leetcode之字符串相关问题

该类问题基本可以用动态规划进行求解,定义dp[i][j]/dp[i]表示以下表为 i -1 和j - 1 时的个数为dp[i][j]/dp[i].这种定义与之前的最长公共序列相关问题类似,i-1也表示的是以下标i-1结尾时的最长/最大公共序列为dp[i]。判断子序列讲解class Solution: def isSubsequence(self, s: str, t: str) -> bool: m = len(s) n = len(t)

2021-04-06 18:01:40 88 1

原创 Python Leetcode回溯之排列、组合、子集问题

排列、组合、子集问题1.给定的数组和要求存在以下情况:(1)数组含重复元素,(2)数组不含重复元素;(3)每个元素可多次使用,(4)每个元素只能使用一次;一.排列(1)全排列问题,需去重!全排列2class Solution: def permuteUnique(self, nums: List[int]) -> List[List[int]]: nums.sort() length = len(nums) visit = [.

2021-03-31 11:39:24 313 3

原创 Leetcode最长递增/重复序列/字符问题

这类题往往采用动态规划,但是注意动态规划dp的含义。与其他不同,这一类的dp[i][j]/dp[i]定义为:以索引 i 字符结尾的最长递增/重复的长度,所有这一类题往往还需要一个变量记录最大的那个结果!最长公共前缀# class Solution:# def longestCommonPrefix(self, strs: List[str]) -> str:# if not strs: return ""# res = ""#

2021-03-26 23:30:46 160

原创 贪心算法求解硬币问题

你能构造出连续值的最大数目分析:class Solution: def getMaximumConsecutive(self, coins: List[int]) -> int: sum = 0 coins.sort() for coin in coins: if coin > sum + 1: return sum + 1 else:

2021-03-25 22:15:04 579

原创 c++知识点2

c语言中,使用malloc和free实现动态内存的分配和回收;c++中,使用new和delete实现动态内存的分配和回收。new和delete总是成对出现!!!函数重载内联函数因为它的直接参数替换,并不是对参数处理之后再进行计算,而且它还没有类型检查。常量引用指针构造函数自动对数据成员进行初始化。重载构造函数析构函数专门用于处理对象销毁时候的清理工作。拷贝构造函数有时候初始化挺麻烦的,能不能用已经存在的对象

2021-03-25 12:38:22 76

原创 C/C++知识点

1.三目条件运算e1 ? e2 : e3 (eg: a> b ? a : b)如果e1成立,则取e2,否则取e3。2.逗号结合运算值取最后一个表达式的值。eg: a = 2 * 5, a // 10, a - 2表达式的值为:8, a = 10.x = (a =10, b = 100, c = 1000)表达式的值为:x = 10003.字符与字符串‘A’ 65; ‘a’ 97;‘a’ - 32 = 65 = ‘A’; ‘A’ + 32 = ‘a’;‘0’ 48; ‘9’

2021-02-19 22:10:00 151

原创 Python Leetcode求解柱状图中最大的矩形

题目如下:1.暴力求解面积 = 底 * 高:1.固定底,求最大高度;2.固定高,求最长底边。采用双指针从中间指针向两边扩散,直到找到严格小于中间指针所对应的高度。如果我们枚举「宽」,我们可以使用两重循环枚举矩形的左右边界以固定宽度,此时矩形的高度就是所有包含在内的柱子的「最小高度」,代码如下:class Solution: def largestRectangleArea(self, heights: List[int]) -> int: n = len(he

2020-12-10 22:46:57 132

原创 Python Leetcode接雨水

题目如图所示:对于该题,从以下几个方法展开求解。1.暴力求解直接按问题描述进行。对于数组中的每个元素,我们找出下雨后水能达到的最高位置,等于两边最大高度的较小值减去当前高度的值。时间复杂度为O(n2),空间复杂度为O(1)。class Solution: def trap(self, height: List[int]) -> int: length = len(height) res = 0 for i in range(1, le

2020-12-08 22:48:47 114

原创 Python Leetcode刷题之二叉树遍历

二叉树二叉树的遍历主要有前序、中序、后序、层序四种遍历方式,遍历方法可以通过递归和迭代实现。# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = right如图,前序遍历按照根节点-&

2020-11-19 23:21:30 177 1

原创 Python Leetcode刷题之双指针解题

双指针双指针法,有时也叫快慢指针,在数组里是用两个整型值代表下标,在链表里是两个指针,一般能实现O(n)的时间解决问题,两个指针的位置一般在第一个元素和第二个元素或者第一个元素和最后一个元素,快指针在前“探路”,当符合某种条件时慢指针向前挪。双指针还可以用来缩减搜索空间!!!主要是将一头一尾的索引设为两个指针,当满足条件1时,头指针加一;当满足条件2时,尾指针减一;当满足条件3时,返回结果。多用于有序的数组(矩阵)中,可以有效降低算法的复杂度。1.盛最多水的容器class Solution:

2020-11-17 20:44:10 220 2

翻译 Attention is All You Need

Attention is All You Need在过去的一年里,“Attention is All You Need”已经成为许多人的想法。除了在翻译质量上做出重大改进之外,它还为许多其他NLP任务提供了一种新的架构。这篇论文本身写得非常清楚,但传统观点认为,正确地实施它是相当困难的。1.背景减少序列计算的目标也是扩展神经GPU、ByteNet和ConvS2S的基础,它们都使用卷积神经网络作为基本构建块,并行计算所有输入和输出位置的隐藏表示。在这些模型中,将来自两个任意输入或输出位置的信号联系起来所

2020-08-24 15:53:45 388

原创 pytorch之自适应平均池化

1.nn.functional.adaptive_avg_pool2d参考:pytorch中文文档之nn.functional.adaptive_avg_pool2dtorch.nn.functional.adaptive_avg_pool2d(input, output_size)>>> import torch>>> import torch.nn as nn>>> a = torch.randn(1, 3, 8, 8)>>&

2020-06-04 22:16:22 1578

原创 Pytorch面向对象编程OOP

由于非计科出身,对各种计算机类的术语一脸懵逼,每次问计科的朋友相关术语,感觉就在折磨别人。最近学Pytorch,对面向对象编程中存在的各种属于名词更是懵逼。因此通过学Pytorch搭建CNN来学...

2020-05-29 23:34:11 351

原创 CV名词解释

1、平移不变性:主要是指图像分类,当图像进行扭转、平移、折叠等,结果仍可以识别出来。网络的层次越深时,这个特性越明显。2、平移可变性主要针对目标检测的。如当一张猫图像进行平移后,检测出的猫的坐标框会发生变化,此时称平移可变性。网络越深时,平移可变性变差,因为网络越深,最后得到的特征图尺度更小,平移量被压缩。3、超像素超像素由一系列位置相邻且颜色、亮度、纹理等特征相似的像素点组成的小区域。这些小区域大多保留了进一步进行图像分割的有效信息,且一般不会破坏图像中物体的边界信息。超像素就是把一幅像素级(p

2020-05-27 19:36:44 921

原创 深度学习环境安装

开始跑深度学习之前,肯定得经历安装环境的痛苦。本人在开始接触深度学习之时,特别是在用实验室服务器跑程序时,一大痛点就是对Linux不懂,如何安装Github上代码要求的框架及其对应的gpu版本(如tensorflow、pytorch),完全懵的。安装过程各种报错然后百度csdn等等,以下就是个人的一些总结,希望对像我一样刚开始炼丹的人有一些帮助。1、在服务器上安装CUDA9.0、cuDNNv7.3.0、tensorflow-gpu1.2过程这里就给出一些大佬的博客,本人也是按照其中步骤安装好的http

2020-05-27 19:31:10 251

原创 科技英语语法第八周

一.科技英语语法之状语从句1.两个句型的特殊翻译技巧not … until…The machine will not work until it receives a signal.Up to the time when the machine receives a signal it will start working.…before…The body will move o...

2020-04-11 14:12:30 917

原创 Pytorch改变Tensor维度

在pytorch中,有比较多的函数可以对Tensor的维度进行改变,下面笔者就简单列出一些。1.torch.squeeze()/torch.unsqueeze()squeeze函数是对张量的维度进行压缩,去掉维数为1的维度;相反unsqueeze函数是对张量进行维度扩张。多说无益,赶紧上马:import torch#这里随机产生一个多维张量shape = ([3, 1, 2, 1, 4...

2020-04-10 19:50:48 937

原创 科技英语语法第七周

一.科技英语语法之介词I1、做定语一般单个分词放在名词之前,分词短语放在修饰的名词之后。(可以改成定语从句)These moving electrons form the current.A capacitor is a device consisting of two conductors separated by an insulator.当使用分词作定语时,存在一些特殊情况:...

2020-04-06 11:41:22 5775

转载 tensorflow编程一般思路

小白编程,时常看tf代码看得头痛,也没有自己的一点思路。今天就结合网上的一些资料以及我自己的一个代码,整理了一下tensorflow编程一般思路。一般我们从GitHub上下载的tensorflow的代码文档,主要包含如下几个文件:训练与测试数据集文件夹datasets;保存的模型文件夹snapshots;数据传输接口image_reader.py;网络定义文件net.py;训练主控...

2020-04-03 18:18:39 174

原创 科技英语语法第六周

一.科技英语语法之动词不定式1.作主语(一般用It做形式主语)2.作宾语不定式的被动形式These problems deserve to be further studied.主语+谓语+形式宾语it+宾语补足语+不定式We find it very difficult to solve the problem.不定式在句子中作表语(通常译为“…是…”)Th...

2020-03-29 22:40:12 400

空空如也

空空如也

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

TA关注的人

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