自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 随便记记——TensorFlow知识点(持续补充)

参数1表示放入值的位置;参数2表示放入的值。参数1与参数2一一对应;参数3表示所构建的张量大小。

2022-11-17 15:56:12 31

原创 随便记记,一些tensor / numpy / pandas的操作【遇到新的了随缘更新】

2、ndarray多个维度同时插入,元素添加操作,用在计算预测结果的时候(这个真的,我为难了好久,结果发现可以直接插入,哭😭)(参考。我是用在测试的时候,使用预测结果与全部特征嵌入进行计算时,将目标特征嵌入扩充维度并复制batch_size 份(参考。1、tensor复制扩充(扩充维度+复制),例如从[1]变成 [[1], [1], [1] ...]

2022-10-25 08:58:14 32

原创 LeetCode 239 滑动窗口最大值(Go的接口)

注意:为了降低代码的复杂程度,在窗口左边界移动时并不需要每次左移都将对应位置的元素移除(这个操作相对复杂),当且仅当遇到情况2)时,即应该被移除的元素是堆顶,弹出堆顶元素(此时是直接弹出堆顶元素,相比于删除堆中元素操作难度降低),直至新的堆顶在窗口范围内。结合堆之后,这道题目就将滑动的窗口以大根堆(树节点为堆中的最大值)的结构进行存储,每次窗口右移就将新的元素加入堆中。面对这两种情况,如果新移入的值大于上一窗口的最大值,那么该值必为当前窗口的最大值,否则如果是情况1),当前窗口最大值仍为上一窗口最大值;

2022-10-17 11:02:54 122

原创 GO七天开发挑战:7天实现Web框架-Gee(day 4 分组控制Group)

这里的分组是指对可以进行相似处理的路由进行分组,是否分为一个组通常是以前缀进行区分,例如 /admin 为一个分组,那么 /admin/a 和 /admin/b 就是该分组下的子分组。如果没有分组控制,那么就需要对这两个不同的路由分别进行控制,会增加不必要的工作,也会增加路由控制的难度和复杂度。此外,分组支持嵌套,父分组的功能应该可以作用到子分组上,例如 /admin分组应该包含顶层分组 / 的相关处理。分组需要通过前缀来对分组进行区分,所以包含 string 类型的 prefix;

2022-09-30 14:58:12 396

原创 GO七天开发挑战:7天实现Web框架-Gee(day 3 前缀树路由Router)

其中,roots 是请求的路由对应的树根节点,用于判断路由是否匹配,起始的树节点为 GET/POST等请求类型节点(key eg, roots['GET'] roots['POST']);否则查找子树中所有可以匹配的节点,遍历这些节点,递归查找下一层是否匹配,直至找到完全匹配路由的叶子节点,并将该叶子节点返回。(2) 查找子树中所有可能的匹配:遍历当前节点对象的所有子节点,将所有可匹配的节点放入 slice 中,遍历所有节点后,返回 slice。根据请求的类型以及路由找到匹配的节点后,返回对应的响应内容。

2022-09-25 11:57:21 280

原创 LeetCode 打卡 Day 63 —— 448. 找到所有数组中消失的数字

发现 [1, n] 范围内的数字与数组下标存在对应关系,所以假设数组nums存在数字num,那么对nums[num-1]进行+n操作,在后续遍历数组遇到nums[num-1]数据时,进行%操作即可得到原有的数据。首先想到的是较为简单的解法,构建哈希表,将“存在”的数字存入哈希表中,之后遍历所有在 [1, n] 范围内的数字,查找数字是否在哈希表中,若不在表中,则该数字为“消失”的数字,实现代码如下。遍历整个数组,若数组下标为num的值...

2022-08-06 12:19:34 52

原创 LeetCode 打卡 Day 62 —— 338. 比特位计数

使用了最为基础的解法,通过对数字进行取余和除法运算将数字转换为了二进制形式,统计其中1的个数(取余结果相加即可),例如对于数字num=7,假设计数结果为 ans(初值为0),计数过程如下。得到比特1的个数为3。...

2022-08-06 12:15:59 1340

原创 LeetCode 打卡 Day 61 —— 283. 移动零

首先想到的是最直接基础的解题方法,遍历整个数组,将为0的元素从数组中删除,之后在数组末尾插入0

2022-08-06 12:11:11 9

原创 LeetCode 打卡 Day 60 —— 234. 回文链表

首先想到的是根据当前链表构建一个反向链表

2022-07-01 18:40:45 54

原创 LeetCode 打卡 Day 59 —— 226. 翻转二叉树

看到二叉树首先就想到了回溯,想要反转二叉树也较为简单,将每个树节点的左右子树进行交换即可

2022-07-01 16:44:36 64

原创 LeetCode 打卡 Day 58 —— 206. 反转链表

题目还是比较简单的,可以很快想到解法并实现,整体思路就是维持两个指针,反转之间的 “Next”关系

2022-07-01 15:09:41 46

原创 LeetCode 打卡 Day 57 —— 169. 多数元素

想到的解法较为简单,首先还是想到哈希表,以每个数值为key,value中记录该数值出现的次数

2022-06-30 11:27:21 33

原创 LeetCode 打卡 Day 56 —— 160. 相交链表 [Go]

题目较为简单,关键在于想到相交的节点对应的指针值一致,可以用“==”进行比较,所以直接对一个链表进行遍历,构建一个以指针值作为键的哈希表

2022-06-28 18:30:21 47

原创 LeetCode 打卡 Day 55 —— 155. 最小栈 [Go]

问题的主要难度在于随时输出栈的最小值,首先想到用一个int类型的变量存储当下栈中的最小值,但很容易发现存在如下问题:当栈中当前的最小值弹出后,较难确定新的最小值(再次遍历栈会增加时间复杂度),所以再一次用空间换时间,维护另一个栈,假设数据栈为a,维护的新栈为b,在b中,与a中元素的对应位置存储从栈底到该元素的最小值...

2022-06-27 21:01:47 32

原创 LeetCode 打卡 Day 54 —— 柱状图中最大的矩形

1、题目2、题解思路1 :暴力遍历,双重循环,固定一个左边界,不断扩大右边界,面积就是边界范围内最低高度*边界长度,实现代码如下func largestRectangleArea(heights []int) int { width:=len(heights) maxArea:=math.MinInt32 getMin:=func (a, b int) int { if a>b { return b

2022-04-29 19:10:00 95

原创 LeetCode 打卡 Day 53 —— 单词拆分

1、题目2、题解看到题目就想到了动态规划,dp 内存储如下内容,dp[i] 表示从0到 i 能够

2022-04-27 18:45:28 88

原创 GO七天开发挑战:7天实现Web框架-Gee(day 2)

学习资料来自:GitHub - geektutu/7days-golang: 7 days golang programs from scratch (web framework Gee, distributed cache GeeCache, object relational mapping ORM framework GeeORM, rpc framework GeeRPC etc) 7天用Go动手写/从零实现系列Day2独立路由 & 设计上下文结构封装数据构建独立路由文件路径 .

2022-04-27 17:07:28 207

原创 LeetCode 打卡 Day 52 —— 环形链表

1、题目2、题解看到题目,脑海中瞬间就想到了哈希表,遍历链表,将经过的节点存放到哈希表中,每次遍历到节点就检测哈希表中是否已经存在,如果已存在证明链表中存在环,实现代码如下/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func hasCycle(head *ListNode) bool { n.

2022-04-26 13:58:24 433

原创 GO七天开发挑战:7天实现Web框架-Gee(day 1)

学习资料来自:https://github.com/geektutu/7days-golangDay1 准备知识 — http.Handler接口

2022-04-25 16:20:01 305

原创 LeetCode 打卡 Day 51 —— 最长连续序列

1、题目2、题解读完题目后的第一个想法就是对数组排序,排序后对数组进行一次遍历找到其中的连续序列即可,但已知的排序算法时间复杂度都不能保证O(n)算法 最好时间复杂度 最坏时间复杂度 平均时间复杂度 空间复杂度 快速排序 O(nlog2​(n)) O(n2) O(nlog2​(n)) O(log2​n) 归并排序 O(nlog2​(n)) O(nlog2​(n)) O(nlog2​(n) O(n) 堆排序

2022-04-25 13:16:05 454

原创 LeetCode 打卡 Day 50 —— 只出现一次的数字

1、题目2、题解题目中的数组具有特殊性:除某个数字外其余数字均出现两次。由于这个特殊性,想到可以首先对数组进行排序,排序后相邻2个数字相同,依次对排序后的数组进行一次遍历即可,实现代码如下。func singleNumber(nums []int) int { sort.Ints(nums) for i:=0; i<len(nums); i=i+2 { if i>=len(nums)-1{ return nums[len(n.

2022-04-24 20:42:04 196

原创 LeetCode 打卡 Day 49 —— 买卖股票的最佳时机

1、题目2、题解题目还是较为简单的,暴力方法很容易想到,使用一个二重遍历,固定数组中每一个数字然后向后进行遍历,保存差的最大值。但是总感觉有能够优于暴力解法的方法,即在遍历的过程中保存已遍历过的数字中的最小值,用当前值减去最小值即当前值能取得的最大利润。实现代码如下func maxProfit(prices []int) int { profit:=0 minP:=math.MaxInt32 getMin:=func(a, b int) int { ..

2022-04-22 13:31:13 313

原创 LeetCode 打卡 Day 48 —— 二叉树展开为链表

1、题目2、题解

2022-04-21 12:32:44 308

原创 LeetCode 打卡 Day 47 —— 从前序与中序遍历序列构造二叉树

1、题目2、题解解题的关键就在于同一棵树,不管是前序还是中序遍历它的长度都是相等的

2022-04-18 16:43:32 227

原创 LeetCode 打卡 Day 46 —— 二叉树的最大深度

1、题目2、题解首先的思路在于树的最大深度即整棵树的层数,这要是给的是数组,直接2^n=数组长度,解出 n 就好了,可惜了给的又是指针,那就再一次借助队列的结构对这棵树层序遍历好了,但注意:1)当且仅当该节点不为叶子节点时才将其加入队列,否则计算当前层数并更新最大长度。最后实现代码如下:/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *Tre

2022-04-17 20:09:52 164

原创 LeetCode 打卡 Day 45 —— 二叉树的层序遍历

1、题目2、题解这几天好多棵树啊,使用队列进行迭代,遍历树的每一层,今天做的还挺快的,哈哈这是功力见长了吗/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } **/func levelOrder(root *TreeNode) [][]int { s:=[][]int

2022-04-16 13:11:37 346

原创 LeetCode 打卡 Day 44 —— 对称二叉树

1、题目2、题解看到题目的第一瞬间,脑子里想,这要是给个数组多简单啊,可惜给的指针,leetcode真的永远都不让我如意,坏家伙(哼!)因为想到了数组,而对称的二叉树中序遍历的结果往往也是对称的,所以脑海中的第一个解法是对树进行中序遍历,将节点的值存到数组里,然后对数组进行检查,查看其中的值是否对称(下标之和相加等于数组长度的两个数相等即可)。按照这种思路解答的过程中发现如下注意点:1)当左右子树仅一方为空时,为空的那方需要一个标志来标识(因为节点范围 >= 1,所以选择 -1 作

2022-04-15 18:14:45 258

原创 Go知识点之随便记记(十)— 测试+性能调试

学习资料来自GitHub - unknwon/the-way-to-go_ZH_CN: 《The Way to Go》中文译本,中文正式名《Go 入门指南》启动外部命令和程序1、os 包 :StartProcess 函数(可调用或启动外部系统命令+二进制可执行文件)1)参数(1)参数1:要运行的进程(2)参数2:传递选项或参数(3)参数3:含有系统环境基本信息的结构体2)返回值:(1)启动成功:被启动进程的 id(2)启动失败:返回错误2、exec 包 :exec

2022-04-14 23:03:59 66

原创 Go知识点之随便记记(九)— 错误与异常

学习资料来自GitHub - unknwon/the-way-to-go_ZH_CN: 《The Way to Go》中文译本,中文正式名《Go 入门指南》错误处理1、错误处理机制1)普通错误:将错误对象作为函数或者方法的最后一个返回值,返回nil表示没有错误发生(不需要错误检测时 _ 代替,需要时使用 err),以下展示普通错误的一些构建方errors 包(注意:错误信息会以Error:开头,注重语法的话,错误信息记得小写开头)// errors包预先定义 error 接口ty.

2022-04-14 21:24:31 87

原创 LeetCode 打卡 Day 43 —— 验证二叉搜索树

1、题目2、题解吃一堑长一智,赶快去看树的数据结构有没有给,毕竟给数组还是给定义好的数据结构难度差别有点大,树的信息通过指定的数据结构进行存储,节点数范围 [1, 10^4]。已知的一些算法回溯,动态规划,滑动窗口,双指针,栈,想来想去还是先试试回溯吧,就是怕时间又超出限制,代码如下/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNod

2022-04-13 16:01:22 49

原创 LeetCode 打卡 Day 42 —— 不同的二叉搜索树

1、题目2、题解跟昨天一样又是树,还是一棵新树,来简单了解下二叉搜索树,它是满足如下条件的二叉树左子树所有节点小于根节点 右子树所有节点大于根节点 左右子树均为二叉搜索树脑海中首先的想法是从1到n遍历整数n,每个遍历到的数字均可能作为数的根节点,由此依次遍历,递归无疑是最适合的方法递归函数的参数:整数start,end,表示树的节点范围 递归出口:树仅有一个节点或没有节点start>=end 递归内容:确定当前树的节点,以及当前节点对应树的个数为 “左子树个数*右子树个.

2022-04-12 13:59:33 193

原创 Go知识点之随便记记(八)

学习资料来自GitHub - unknwon/the-way-to-go_ZH_CN: 《The Way to Go》中文译本,中文正式名《Go 入门指南》1、Gob数据: Go 自己的以二进制形式序列化和反序列化程序数据的格式,常用于远程方法(调用参数+结果的传输+应用程序和机器之间的数据传输)特定用于纯Go环境。编码:类似Json,io.Writer 接口,通过 NewEncoder() 函数创建 Encoder 调用 Encode()解码:io.Reader 接口,通过 NewDeco

2022-04-12 11:43:45 215

原创 Go知识点之随便记记(七)— Json,Xml数据格式转换

学习资料来自GitHub - unknwon/the-way-to-go_ZH_CN: 《The Way to Go》中文译本,中文正式名《Go 入门指南》数据格式转换1、JSON(json包)序列化(其它->json)1)Json与Go的类型对应(Go与Json的对应)bool — boolean float64 — number string — string nil — null2)结构体 -> Json编码将数据转为Json格式(1)func

2022-04-12 11:05:45 196

原创 LeetCode 打卡 Day 41 —— 二叉树的中序遍历

1、题目2、题解虽然是一道简单程度的题,却成功把我难住了,因为忘记了中序遍历什么样子🥲,复习一下吧前序遍历 “根左右” 中序遍历 “左根右” 后续遍历 “左右跟” 层序遍历,逐层从左到右访问节点一说二叉树遍历,脑子里第一个反应就是回溯,构思回溯的思路如下,首先遍历左子树,之后加入根节点,再对右子树进行遍历。本来以为题目给出的是前序遍历的数组,没想到直接给了链表形式的二叉树,难度瞬间就降下去了最后实现代码如下:/** * Definition for a binary

2022-04-11 10:37:51 338

原创 Go知识点之随便记记(六)— 数据读写(标准输入输出,文件,命令行)

学习资料来自GitHub - unknwon/the-way-to-go_ZH_CN: 《The Way to Go》中文译本,中文正式名《Go 入门指南》数据读写(标准输入/出 os.Stdin / os.Stdout :本质是*os.File类型)1、输入(才发现,学和写了一段时间go,居然连输入都没有好好了解过🤦‍♀️)1)fmt 包(1)fmt.Scanln :空格分隔值依次存入后续参数,直至换行fmt.Scanln(&firstName, &lastNa.

2022-04-11 10:01:54 95

原创 LeetCode 打卡 Day 40 —— 最小覆盖子串

1、题目2、题解困难级别的问题,不出意外把我困难住了😭,纠结了半天能否用动态规划进行解决,没想到动态规划的具体解决办法,所以还是直接去看题解了。题解使用了滑动窗口,印象中这是第一次看到滑动窗口算法,之前只在计算机网络中接触过,算法库中新增一员😊。具体的算法内容如下:...

2022-04-10 22:00:50 106

原创 Go知识点之随便记记(五)— 接口

1、接口(动态类型)1)接口定义一组方法,方法不含实现代码。2)接口内不能包含变量。3)按照约定,接口通过以下方式命名:方法名+er后缀,也可以able结尾或I开头。4)接口特性(1)接口隐式实现,类型不需要显示声明;(2)实现接口的类型除接口中方法外还可以有其他类型;(3)一个类型可实现多个接口;(4)接口类型可包含 一个 实例的(该实例的类型实现了该接口)引用。5)总结一下,其实就是通过 var 定义一个接口后,该接口可以赋值任意实现了接口方法的对象,具体举例如下:

2022-04-10 12:31:49 217

原创 Go知识点之随便记记(四)— 结构体

1、结构体1)不论是结构体类型或是指向结构体的指针,均使用 '.' 作为选择器符2)结构体工厂(惯例:工厂的名字以 new 或 New 开头),其实就是结构体的构造函数。构造结构体工厂后可以禁止使用new函数,强制用户使用工厂方法(实现类的私有化)3)注意 new 初始化返回指针,make 初始化返回类型本身4)结构体添加标签 :借助 reflect 包结构体可添加 Field,使用 Tag 属性type TagType struct { // tags field1 bool

2022-04-05 22:23:01 118

原创 Go知识点之随便记记(三)

1、Map1)Map可用函数或切片和数组(用于一个key对应多个value的情况)作为 value2)是引用类型3)长度可动态改变,不用new进行初始化(会返回空指针 nil)4)判断键值对是否存在_, ok := map1[key1] // 如果key1存在则ok == true,否则ok为falseif _, ok := map1[key1]; ok { // 可以结合if进行判断 // ...}delete(map1, key1)

2022-04-01 21:15:25 543

原创 LeetCode 打卡 Day 39 —— 单词搜索

1、题目2、题解看完题目后并没有想到较为简单的解决方法,所以准备暴力解题了,直接遍历二维数组确定word是否存在于数组中。

2022-03-31 19:12:47 118

空空如也

空空如也

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

TA关注的人

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