自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

如是说的博客

读史使人明智 读诗使人灵秀 数学使人周密 科学使人深刻 伦理学使人庄重 逻辑修辞之学使人善辩...

原创 goland fatal error: 'CoreFoundation/CoreFoundation.h' file not found

Copy/Merge all of the Framework files under /Library/Developer/CommandLineTools/SDKs/MacOS10.14.SDK/System/Library/Frameworks to /System/Library/Fram...

2020-04-24 13:29:49 312 0

转载 Go中的命名规范

1.命名规范# 1.1 Go是一门区分大小写的语言。 命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。 Go语言从语法层面进行了以下限定:任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该以小写字母开头。 当命名(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母...

2020-04-22 23:39:27 67 0

原创 Mac下安装Gin遇到的问题记录

背景 毕设中后端打算用gin,之前装好了,莫名其妙的崩了,忍不住的F**k。 安装 没什么说的,看文档:https://www.kancloud.cn/shuangdeyu/gin_book/949412 问题描述 package google.golang.org/protobuf/encodi...

2020-04-22 00:09:38 823 0

原创 解决unrecognized import path "golang.org/x/.."类问题

背景 安装Gin时,通过go get下载并安装gin软件包 $ go get -u github.com/gin-gonic/gin 问题 package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys...

2020-02-03 15:04:57 1248 0

原创 290. 单词规律

题目描述 解题思路 类似于同构字符串(205. 同构字符串)的思路,使用两个map来分别记录从pattern到str的映射和str到pattern的映射。注意需要先把str字符串分割成字符串数组,然后思路相同,不赘述了。 代码 func wordPattern(pattern string, s...

2020-01-16 17:27:09 64 0

原创 268. 缺失数字

题目描述 思路一 排序,不多解释,估计都能想到。 func missingNumber(nums []int) int { sort.Ints(nums) if nums[len(nums) - 1] != len(nums) { return len(nums...

2020-01-14 20:48:35 55 0

原创 算法思维 ---- 回溯算法

回溯算法 回溯实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术...

2020-01-14 13:09:55 78 0

原创 257. 二叉树的所有路径

题目描述 思路分析 在递归遍历二叉树时,需要考虑当前的节点和它的孩子节点。 如果当前的节点不是叶子节点,则在当前的路径末尾添加该节点,并递归遍历该节点的每一个孩子节点。 如果当前的节点是叶子节点,则在当前的路径末尾添加该节点后,就得到了一条从根节点到叶子节点的路径,可以把该路径加入到答案中。 /...

2020-01-09 13:23:59 46 0

原创 237. 删除链表中的节点

题目描述 思路分析 我要吐槽,这鬼题,我以为是出错题了。找了半天的head,直到看看官方解题才反应,这是要求不让访问被删节点的前置节点下,如何删除被删节点。脑筋急转弯系列。。。。 思路就是将被删节点的值替换成被删节点后置节点的值,然后删除被删节点的后置节点。 func deleteNode(no...

2020-01-09 11:31:24 39 0

原创 235. 二叉搜索树的最近公共祖先

题目描述 思路一 二叉搜索树一定是二叉树,可以用二叉树的最近公共祖先的思想来求解。 对每一个节点A,在其两棵子树上求p和q的公共祖先。 假设在左子树上求的公共祖先L,在右子树上求的公共祖先R,之后开始分情况进行讨论: 当L == null & R == null时,说明p和q没有出现在...

2020-01-09 11:17:49 28 0

原创 234. 回文链表

题目描述 思路分析 这道题是一道很典型的双指针中快慢指针类型的问题,思路是先通过快慢指针找到中心节点,如果链表个数是奇数的话,中间节点是中心节点;如果链表个数是偶数的,中间节点是中心节点偏左的节点。然后对前半部分或后半部分链表进行反转链表操作,最后比较这两个长度相同的子链表每个节点值是否相同,如...

2020-01-09 10:30:46 33 0

原创 算法思维----滑动窗口

滑动窗口作为一种高级双指针技巧的框架,在日常算法中尤其是字符串匹配查询中经常用到。所以总结一下滑动窗口的框架思维。 首先需要熟悉一下滑动窗口常用的数据结构:哈希表,也称为字典、散列表,是一种 k => v 结构,这里就不细讲什么是哈希和哈希表了,因为作为基础的数据结构,应该大家都理解。 滑动...

2020-01-08 14:05:15 74 0

原创 205. 同构字符串

题目描述 思路 两个字符串同构的含义就是s可以唯一映射到t,t也可以唯一的映射到s. egg 和 add 同构,就意味着下边的映射成立 e -> a g -> d 也就是将 egg 的 e 换成 a, g 换成 d, 就变成了 add 同时倒过来也成立 a -> e d -&...

2020-01-07 11:38:00 31 0

原创 204. 计数质数

题目描述 思路一 暴力法 具体就不说了,轮询着一个一个的判断,时间复杂度是O(n2n^2n2)。 思路二 The Sieve of Eratosthenes(埃拉托色尼筛选法) 在了解这个算法之前,我们需要了解一下质数的定义和性质 定义 质数(prime number)也叫素数,为大于1的且除...

2020-01-06 13:06:11 40 0

原创 202. 快乐数

题目描述 思路一 集合判断 如果一个数是快乐数,那么最终会变回到1,确定了循环的终止条件; 若不是快乐数,会进入死循环,如何终至死循环,将每次变换过后的值存入Set中,判断是否出现过重复值,出现则return false; 思路二 快慢指针 “快指针”每次走两步,“慢指针”每次走一步,当二者相等...

2020-01-06 10:42:13 27 0

原创 198. 打家劫舍

题目描述 思路 动态规划思路 设f(k)是从前k个房屋中能抢劫到的最大数额,AiA_iAi​是第i个房间的金额数 当n=1,显然有f(1)=A1A_1A1​ 当n=2时,f(2)=max(A1A_1A1​, A2A_2A2​) 当n=3时,有两个选项: 抢第三个房子,和第一个房子的金额相加 不...

2020-01-03 11:44:18 41 0

原创 191. 位1的个数

题目描述 汉明距离与汉明重量 汉明距离:它是一种概念。即两个等长的字符串对应位置上的字符不同的 个数 。 汉明重量: 它是一种特殊的汉明距离。指一个字符串与一个等长的“零”字符串 的汉明距离,即一个字符串中非零的字符个数 思路一 对二进制数字逐个位进行比较,并用count记录为1...

2020-01-03 11:10:48 32 0

原创 聊一聊RPC协议 & 简单实现

什么是RPC RPC协议(Remote Procedure Call)就是远程过程调用,即被调用的方法的具体实现不在本地,而是在其他地方。主要应用于不同系统或服务器之间的远程通信和相互调用。RPC假定某些传输协议是存在的,如TCP/UDP,在OSI中,RPC位于第五层会话层,跨过了传输层和应用层,...

2020-01-03 00:10:11 70 0

原创 190. 颠倒二进制位

题目描述 思路一 用一个变量res存储结果, 依次得到要转换数字的低位,然后保存在res中,res每得到一位后进行左移腾出一位用来保存下一位。 一个例子 原数字 1011 ,res = 0 res 左移一位,res = 0, 得到 1011 的最低位 1 加过来, res = 1 10...

2019-12-30 14:12:46 47 0

原创 189. 旋转数组

题目描述 思路一 使用额外空间。就是说之前位置为下标i的值,经过移动后值的位置变成了(i+k) % len(nums),所以使用一个额外的数组空间进行存储,再将新数组赋值给nums。 func rotate(nums []int, k int) { temp := make([]int,...

2019-12-30 10:55:11 28 0

原创 172. 阶乘后的零

题目描述 思路分析 具体对于5! = 5 * 4 * 3 * 2 * 1 = 120,结果有一个0,原因是存在一对2 * 5 = 10,对于10来说,只有2 * 5可以构成,所以需要在阶乘中查找有多少对2 * 5。 在看一个例子: 11! = 11 * 10 * 9 * 8 * 7 * 6 * ...

2019-12-18 10:58:16 22 0

原创 171&168. Excel表列序号转换

Excel表列名称 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ......

2019-12-18 09:55:52 34 0

转载 什么是倒排索引?(转)

转自:什么是倒排索引 什么是倒排索引?     不多说,直接上干货!         见其名知其意,有倒排索引,对应肯定,有正向索引。     &n...

2019-12-17 16:06:17 32 0

原创 169. 多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 方法一:哈...

2019-12-17 11:39:32 30 0

原创 160. 相交链表

这道题也是面试当中很常见的考察题,难度简单,但是确实在面试中很考验。 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,...

2019-12-17 10:17:10 23 0

原创 155. 最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinStack minStack = n...

2019-12-16 11:43:28 16 0

原创 122. 买卖股票的最佳时机 II

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释:...

2019-12-12 10:33:57 21 0

原创 121. 买卖股票的最佳时机

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1...

2019-12-11 10:59:22 23 0

原创 100. 相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 递归方法: /** * Definition for a binary tree node. * type TreeNode struct { * Val int ...

2019-12-03 00:18:33 20 0

原创 70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 方法一:暴力法 func climbStairs(n int) int { if n <= 3 { return n ...

2019-12-02 10:55:09 22 0

原创 14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 采用自顶向下的二分查找,最终比较相邻两个的公共前缀,在一层一层的往上。 func longestCommonPrefix(strs []string) string { if len(str...

2019-11-29 18:15:31 20 0

原创 13. 罗马数字转整数

给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。 func romanToInt(s string) int { arr := []rune(s) var rev rune = 0 m := map[string]rune{"IV&quo...

2019-11-29 18:11:41 21 0

原创 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 从后往前进行反转,反转后的数字和反转前数字进行比较,如果相同的话就是回文数。 func isPalindrome(x int) bool { if x < 0 { re...

2019-11-29 18:09:52 28 0

原创 整数反转

题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围...

2019-11-27 10:10:12 28 0

原创 Golang 整数类型最大值和最小值的定义

在写一道算法时需要用到int32类型的最大值和最小值,但是查了查在go的标准库中没有定义这些变量,所以当需要使用整数类型的最大值和最小值的时候,我们需要自己手动去定义。 无符号整型uint 其最小值是0,那么二进制表示就是所有位都为0: const UINT_MIN uint = 0 其最大值二...

2019-11-27 09:57:24 1069 0

原创 MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded

错误信息详情: MySQL said: Authentication plugin ‘caching_sha2_password’ cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image...

2019-11-19 10:15:36 199 0

原创 六大排序实现和比较

常见的排序算法 冒泡排序 两两比较相邻记录的关键字,如果是反序则交换,直到没有反序的记录位置 public static void bubbleSort(int[] arr) { boolean flag = true; for(int i = 1; i < arr.length...

2019-09-20 22:56:29 56 0

原创 聊一聊Laravel的核心----服务提供者

Laravel中的又一个核心概念就是“服务提供者”,在[简单理解Laravel的核心概念----服务容器、服务提供者、契约](https://blog.csdn.net/lishanleilixin/article/details/100050236)中我们其实已经大致了解了服务提供者是个什么东西...

2019-09-07 16:41:12 119 0

原创 聊一聊Laravel的核心----服务容器

关于服务容器的基本概念,你可以看这几篇文章: 《简单理解Laravel的核心概念----服务容器、服务提供者、契约》 在这篇文章中,你会了解到: 服务是如何被注册到服务容器的 服务是究竟怎样从容器中解析的 我们知道,laravel的服务容器,会有两方面的工作: 注册基础服务 管理所需要的...

2019-08-25 22:20:10 210 0

原创 聊一聊Laravel的核心概念----Facades

在《简单理解Laravel的核心概念----服务容器、服务提供者、契约》中,对于Facades,我们说它是一组静态接口或者代理,作用是方便开发者简单的使用绑定到容器中的各种服务,还是那个例子: 我们经常用的Route就是一个Facade, 它是\Illuminate\Support\Facade...

2019-08-24 21:46:19 190 0

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