自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指 Offer 47. 礼物的最大价值(golang版)

题目描述在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物 提示:0 < grid.length <= 2000 < .

2021-07-31 17:15:39 163

原创 剑指 Offer 46. 把数字翻译成字符串(golang版)

题目描述给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi","mcfi"和"mzi" 提示:0 <= num < 231来源:力扣(LeetCode)链接:http.

2021-07-29 23:39:24 216

原创 剑指 Offer 45. 把数组排成最小的数(golang版)

题目描述输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: "102"示例 2:输入: [3,30,34,5,9]输出: "3033459" 提示:0 < nums.length <= 100说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0来源:力扣(LeetCode)链接:https://leetcode.

2021-07-28 18:05:42 201

原创 剑指 Offer 44. 数字序列中某一位的数字(golang版)

题目描述数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。示例 1:输入:n = 3输出:3示例 2:输入:n = 11输出:0 限制:0 <= n < 2^31来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zi-xu-lie-zhong-mou-y.

2021-07-22 22:40:04 108

原创 剑指 Offer 43. 1~n 整数中 1 出现的次数(golang版)

题目描述输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6 限制:1 <= n < 2^31来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof著作权.

2021-07-21 23:18:24 78

原创 剑指 Offer 40. 最小的k个数(golang版)

题目描述输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0] 限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000来源:力扣(LeetCode)链接.

2021-07-08 22:20:08 153

原创 LeetCode刷题:72. 编辑距离(golang版)

题目描述给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符 示例 1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')示例 2:输入:word1 = ".

2021-07-03 15:03:52 227

原创 LeetCode刷题:200. 岛屿数量(golang版)

题目描述给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1示例 2:输入:grid = .

2021-07-03 14:29:57 344 1

原创 LeetCode刷题:547. 省份数量(golang版)

题目描述有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例 1:输入:isCo.

2021-07-03 14:20:52 161 1

原创 LeetCode刷题:322. 零钱兑换(golang版)

题目描述给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins = [1], amount = 0输出:0示例 .

2021-06-30 19:41:27 330

原创 LeetCode刷题:152. 乘积最大子数组(golang版)

题目描述给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-subarray.

2021-06-29 20:19:55 113

原创 LeetCode刷题:300. 最长递增子序列(golang版)

题目描述给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,.

2021-06-29 20:12:25 277 1

原创 LeetCode刷题:188. 买卖股票的最佳时机 IV(golang版)

题目描述给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:k = 2, prices = [2,4,1]输出:2解释:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2 。示例 2:输入.

2021-06-28 22:13:42 122

原创 LeetCode刷题:121. 买卖股票的最佳时机(golang版)

题目描述给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 .

2021-06-28 22:05:53 142

原创 LeetCode刷题:212. 单词搜索 II (golang版)

题目描述给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。 示例 1:输入:board = [["o","a","a","n"],["e","t","a","e"],["i","h","k","r"],["i","f","l","v"]], words = .

2021-06-23 23:17:25 206 1

原创 LeetCode刷题:120. 三角形最小路径和(golang版)

题目描述给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。示例 1:输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]输出:11解释:如下面简图所示: 2 3 4 6 5 74 1 8 3自顶向.

2021-06-23 22:56:11 99

原创 LeetCode刷题:79. 单词搜索(golang版)

题目描述给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"输出:true.

2021-06-22 21:30:32 189 2

原创 LeetCode刷题:208. 实现 Trie (前缀树) (golang版)

题目描述Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。boolean sta.

2021-06-19 11:07:29 151

原创 LeetCode刷题:69. x 的平方根(golang版)

题目描述实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sqrtx著作权归领扣网络所有。商业转载请联系官方授权,.

2021-06-17 22:57:21 121

原创 LeetCode刷题:52. N皇后 II(golang版)

思路1、和前一题一样,只是结果换成了有多少种解法,小改动下即可代码package mainimport "fmt"func main() { var k = 4 res := totalNQueens(k) fmt.Println(res)}func totalNQueens(n int) int { var ( sum int = 0 used = make(map[int]map[int]bool) ) for i:=0; i<n; i++ { u.

2021-06-06 23:55:55 97

原创 LeetCode刷题:51. N 皇后(golang版)

题目描述n皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题存在两个不同的解法。示例 2:.

2021-06-06 23:47:08 102 1

原创 排序-堆排序(golang版)

首先堆排序的思想请看图解排序算法(三)之堆排序,写的很清晰注意节点 i 的两个子节点下标分别为 2i+1 和 2i+2建堆开始节点应为最后一个非叶子节点,即 length/2 + 1 ,然后循环处理所有非叶子节点代码package mainimport ( "fmt")func heap(list []int){ len := len(list) //将最值放到切片末尾,然后参与建堆的list的长度少一个,处理到需要建堆的list的长度为1为止 for i:=len; i&gt.

2021-06-05 14:41:52 132

原创 快排(golang版)

快排思想可以看这里:快速排序思想清晰易懂package mainimport "fmt"func sort_quick(source *[]int,low int, height int){ if low >= height{ return } base := (*source)[low] first := low end := height for low < height{ for low < height && base <=

2021-06-02 11:58:06 56

原创 LeetCode系列:22. 括号生成(golang版)

题目描述数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"] 提示:1 <= n <= 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parentheses著作权归领扣网络所有.

2021-06-01 19:58:01 200

原创 LeetCode系列:111. 二叉树的最小深度(golang版)

题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5 提示:树中节点数的范围在 [0, 105] 内-1000 <= Node.val <= 1000来源:力扣(LeetCode)链接:htt.

2021-05-30 21:29:56 89

原创 LeetCode系列:104. 二叉树的最大深度(golang版)

题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree著作权归领扣网络所有。商.

2021-05-30 21:23:42 101

原创 LeetCode系列:122. 买卖股票的最佳时机 II(golang版)

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

2021-05-25 10:51:53 107

原创 剑指 Offer 38. 字符串的排列(golang版)

题目描述输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转.

2021-05-21 09:59:12 463

原创 剑指 Offer 37. 序列化二叉树(golang版)

题目描述请实现两个函数,分别用来序列化和反序列化二叉树。示例: 你可以将以下二叉树: 1 / \ 2 3 / \ 4 5序列化为 "[1,2,3,null,null,4,5]"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/xu-lie-hua-er-cha-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路1、借助前序遍历的思想,进行序列化.

2021-05-15 23:11:12 144

原创 剑指 Offer 39. 数组中出现次数超过一半的数字(golang版)

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2 限制:1 <= 数组长度 <= 50000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lco.

2021-05-13 22:36:13 86

原创 剑指 Offer 34. 二叉树中和为某一值的路径(golang版)

题目描述输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 target = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,.

2021-05-12 23:49:02 122

原创 剑指 Offer 36. 二叉搜索树与双向链表(golang版)

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。代码package mainimport ( "fmt")type TreeNode struct { Val int Left *TreeNode Right *TreeNode}var pre *TreeNodefunc Convert( pRootOfTree *TreeNode ) *TreeNode { if pRootOfT.

2021-05-11 23:57:46 178

原创 ThinkPHP5.1源码分析-container容器篇

1、首先Container继承3个接口,分别是ArrayAccess, IteratorAggregate, Countable,不了解的童鞋可以去看看手册2、Container使用了单例和注册树模式,通过静态方法getInstance()获取类对象将容器中的对象实例保存在类的成员变量$instances[]中另外还有成员变量$bind[]和$name ,分别是容器绑定标识和容器标识别名,这里建议大家将这些变量打印出来看下数据格式,思路会比较清晰3、在通过容器获取类的实例时,可以通过助手函数

2021-04-09 17:36:39 434

原创 剑指 Offer 35. 复杂链表的复制(golang版)

题目描述请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 示例 1:![在这里插入图片描述](https://img-blog.csdnimg.cn/2021040718583131.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9.

2021-04-07 19:05:32 167

原创 剑指 Offer 33. 二叉搜索树的后序遍历序列(golang版)

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3 示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true 提示:数组长度 <= 1000来源:力扣(LeetCode)链接:https://leetcod.

2021-03-30 19:36:42 106

原创 剑指 Offer 32 - III. 从上到下打印二叉树 III(golang版)

题目描述请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7]] 提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetc.

2021-03-27 14:39:03 134

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II(golang版)

题目描述从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]] 提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xi.

2021-03-27 12:33:48 90

原创 剑指 Offer 32 - I. 从上到下打印二叉树(golang版)

题目描述从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7] 提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof著作权.

2021-03-27 12:28:19 200 2

原创 剑指 Offer 31. 栈的压入、弹出序列(golang版)

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3),.

2021-03-23 19:42:05 121

原创 剑指 Offer 29. 顺时针打印矩阵(golang版)

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <= matrix[i].length &.

2021-03-16 18:34:40 141

空空如也

空空如也

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

TA关注的人

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