- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 如何区分线上、测试环境、本地开发环境?一招搞定频繁修改配置的问题
平时工作中线上使用的配置和线下配置都是分开的。但是这样就有一个问题,平时开发时候需要测试往往要手动改为测试环境的配置,等上线再修改回线上环境的配置。手动修改配置太麻烦,而且有时候容易使用错配置。下面介绍几种比较优雅的方式来区分线上和线下环境。
2024-03-17 13:01:47 635 1
原创 二叉树专题
如果不传递数组地址,那么要覆盖当前数组值。二叉树里的先:指的是中间节点遍历的顺序。复习二叉树相关的知识点。中间节点先遍历,先序遍历。中间节点在中间,中序遍历。中间节点在最后,后序遍历。数组传递时候要传递地址。go语言里有点小坑,
2024-03-05 23:37:24 350
原创 字符串专题
字符串类的变化比较多变化也比较多,这里针对语言特点结合字符串算法题做个总结。主要包括在解字符串类型题目时候go语言中经常使用到的一些知识点、字符串题型汇总、解题技巧。字符串可以看作是一个数组,因此在解字符串类型题目时候也复习下数组相关知识。
2024-03-01 00:45:26 330 1
原创 hash法解题
本文主要总结通过hash解决算法相关的题目。主要是利用map查找速度快的优点通过空间换时间提升查询效率,通常我们认为是O(1)的时间复杂度。对于某些要提升查询速度的性能优化可以考虑使用。这样最后对字典表进行统计,如果两个字符集合是异位词字典表各个位置都应该等于0,如果不等于0代表不是异位词。英文字母共计有26个,我们可以定义一个26个字母的字典表。第一个集合出现的字母进行。第二个集合出现的字母。
2024-02-26 23:46:21 376 1
原创 链表&设计链表
链表是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针。由于不必须按顺序存储,链表在插入的时候可以达到O(1)复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。
2024-02-24 20:18:33 395
原创 双指针-对撞指针(有序数组的平方)
假如有a、b两个街舞队伍。每个队伍中大家都按照个人能力做了排序,现在想对a、b两个队伍做个总排序。暴力的方法是将两个队伍揉在一起做个大排序。也可以按照队伍成绩依次选a、b两个队伍中比较高的出来battle,这样一次遍历就可以排好顺序。数轴两侧是有序的,就像两个队伍一样,l和r两个指针就像a、b两个队伍选出来的最优秀的舞者出来battle。赢了的记录名次,输了的等待对方队伍派出下一个battler。题解:数轴本身是有序的,负半轴和正半轴相当于a、b两个街舞队伍。,一次遍历使用两个指针记录。
2024-02-22 23:37:20 380 1
原创 双指针-快慢指针(移除元素)
比如日常生活中我们排队,假设队伍中有几个人走了。如果这个队伍很长,大家也不知道有空位可以向前走。那么就需要你从队头开始依次去看有没有空位,查看有几个空位后面的人需要向前走几步,然后让空位后面的人向前走。暴力求解就是这样的逻辑。以达到遍历一次即可完成任务的目的。快慢指针比较经典的案例是解决是否有环的问题。首先考虑使用暴力求解。想象下生活中我们遇到这种问题是如何解决的呢。其实你只需要走到每个空位处喊一句“此空位后的人向前走n部”即可。通俗来讲就是用一快、一慢两个指针(
2024-02-22 00:47:00 360 1
原创 数组&有序集合使用二分查找
结束条件l=h时候是否可以呢,试想下假如nums集合只有一个元素,肯定要l=h。通过题目知道集合是有序的,那么可以通过二分查找提高查询效率。原理:简单总结下二分查找就是在某个。内,通过不断缩减查找范围提升查询效率。使用二分查找可以简单、快速查找到目标值。很明显遍历时候做了很多无效查询。
2024-02-21 01:02:23 608 1
转载 Golang原理之goroutine与channel
常见并发编程模型分类并发编程模型,顾名思义就是为了解决高并发充分利用多核特性减少CPU等待提高吞吐量而提出的相关的编程范式。目前为止,我觉得比较常见的并发编程模型大致可以分为两类:基于消息(事件)的活动对象基于CSP模型的协程的实现其中基于消息(事件)的活动对象的并发模型,最典型的代表就是Akka的actor。actor的并发模型是把一个个计算序列按抽象为一个一个Actor对象,每一个...
2018-11-07 14:39:46 151
原创 Go如何使得Web工作
web工作方式的几个概念以下均是服务器端的几个概念Request:用户请求的信息,用来解析用户的请求信息,包括post、get、cookie、url等信息Response:服务器需要反馈给客户端的信息Conn:用户的每次请求链接Handler:处理请求和生成返回信息的处理逻辑分析http包运行机制如下图所示,是Go实现Web服务的工作模式的流程图图3.9 http包执行流程1....
2018-11-07 11:00:46 149
原创 go反射
Go语言实现了反射,所谓反射就是动态运行时的状态。我们一般用到的包是reflect包。如何运用reflect包,官方的这篇文章详细的讲解了reflect包的实现原理,laws of reflection使用reflect一般分成三步,下面简要的讲解一下:要去反射是一个类型的值(这些值都实现了空interface),首先需要把它转化成reflect对象(reflect.Type或者refle...
2018-11-07 10:18:46 184
原创 go语言中make与new操作
make用于内建类型(map、slice和channel)的内存分配。new用于各种类型的内存分配。内建函数new本质上说跟其它语言中的同名函数功能医院:new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。有一点非常重要: new返回指针。内建函数make(T, args)与new(T)...
2018-11-07 09:56:58 1427
原创 Beego 插入数据 cannot use non-ptr model struct
func insertUser() { o := orm.NewOrm() //拿到句柄,操作数据库 //准备要插入的数据 user := models.User{} user.Name = "sdh01" beego.Info(user) id, err := o.Insert(&user)//这里需要传递指针变量 if err != nil ...
2018-10-18 14:42:21 5450 1
原创 golang函数式编程
先看一段代码:func add() func(int)int { sum := 0 return func(i int) int { sum += i return sum }}v := add()for i := 0; i<10; i++{ fmt.Println(v(i))}从0-9求和的一段代码,最后的输出结果是4...
2018-08-29 20:38:53 194
原创 go实现“二叉树遍历”
1.二叉树的常用性质<1>.在二叉树的第i层上最多有2i-1个节点 。(i>=1)<2>.二叉树中如果深度为k(有k层),那么最多有2k-1个节点。(k>=1)<3>.若二叉树按照从上到下从左到右依次编号,则若某节点编号为k,则其左右子树根节点编号分别为2k和2k+1;<4>.二叉树分类:满二叉树,完全二叉树满二叉...
2018-08-28 23:44:13 3881 3
原创 golong实现“寻找最长不含重复字符的字串”,leetcode.no-316
一.问题描述 给定一个仅包含小写字母的字符串,去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)示例 1: 输入:"bcabc" 输出:"abc"示例 2: 输入:"cbacdcbc" 输出:"acdb"二.问题分析 1.用go语言中的map去实现,m...
2018-08-25 14:24:34 627
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人