<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[admin_o1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/admin_o1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; admin_o1]]></copyright><item><title><![CDATA[剑指 Offer 47. 礼物的最大价值（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/119278547</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/119278547</guid><author>admin_o1</author><pubDate>Sat, 31 Jul 2021 17:15:39 +0800</pubDate><description><![CDATA[题目描述

在一个 m*n 的棋盘的每一格都放有一个礼物，每个礼物都有一定的价值（价值大于 0）。你可以从棋盘的左上角开始拿格子里的礼物，并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值，请计算你最多能拿到多少价值的礼物？

示例 1:
输入: 
[
  [1,3,1],
  [1,5,1],
  [4,2,1]
]
输出: 12
解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物
 
提示：
0 &lt; grid.length &lt;= 200
0 &lt; .]]></description><category></category></item><item><title><![CDATA[剑指 Offer 46. 把数字翻译成字符串（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/119223378</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/119223378</guid><author>admin_o1</author><pubDate>Thu, 29 Jul 2021 23:39:24 +0800</pubDate><description><![CDATA[题目描述

给定一个数字，我们按照如下规则把它翻译为字符串：0 翻译成 “a” ，1 翻译成 “b”，……，11 翻译成 “l”，……，25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数，用来计算一个数字有多少种不同的翻译方法。

示例 1:
输入: 12258
输出: 5
解释: 12258有5种不同的翻译，分别是"bccfi", "bwfi", "bczi",
"mcfi"和"mzi"
 
提示：
0 &lt;= num &lt; 231

来源：力扣（LeetCode）
链接：http.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 45. 把数组排成最小的数（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/119186645</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/119186645</guid><author>admin_o1</author><pubDate>Wed, 28 Jul 2021 18:05:42 +0800</pubDate><description><![CDATA[题目描述

输入一个非负整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。

示例 1:
输入: [10,2]
输出: "102"

示例 2:
输入: [3,30,34,5,9]
输出: "3033459"
 
提示:
0 &lt; nums.length &lt;= 100

说明:
输出结果可能非常大，所以你需要返回一个字符串而不是整数
拼接起来的数字可能会有前导 0，最后结果不需要去掉前导 0

来源：力扣（LeetCode）
链接：https://leetcode.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 44. 数字序列中某一位的数字（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/119010750</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/119010750</guid><author>admin_o1</author><pubDate>Thu, 22 Jul 2021 22:40:04 +0800</pubDate><description><![CDATA[题目描述

数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中，第5位（从下标0开始计数）是5，第13位是1，第19位是4，等等。
请写一个函数，求任意第n位对应的数字。

示例 1：
输入：n = 3
输出：3

示例 2：
输入：n = 11
输出：0
 
限制：
0 &lt;= n &lt; 2^31

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/shu-zi-xu-lie-zhong-mou-y.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 43. 1～n 整数中 1 出现的次数（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118979054</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118979054</guid><author>admin_o1</author><pubDate>Wed, 21 Jul 2021 23:18:24 +0800</pubDate><description><![CDATA[题目描述

输入一个整数 n ，求1～n这n个整数的十进制表示中1出现的次数。

例如，输入12，1～12这些整数中包含1 的数字有1、10、11和12，1一共出现了5次。
示例 1：
输入：n = 12
输出：5

示例 2：
输入：n = 13
输出：6
 
限制：
1 &lt;= n &lt; 2^31

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof
著作权.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 40. 最小的k个数（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118583838</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118583838</guid><author>admin_o1</author><pubDate>Thu, 08 Jul 2021 22:20:08 +0800</pubDate><description><![CDATA[题目描述

输入整数数组 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 &lt;= k &lt;= arr.length &lt;= 10000
0 &lt;= arr[i] &lt;= 10000

来源：力扣（LeetCode）
链接.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：72. 编辑距离（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118440003</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118440003</guid><author>admin_o1</author><pubDate>Sat, 03 Jul 2021 15:03:52 +0800</pubDate><description><![CDATA[题目描述

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

示例 2：
输入：word1 = ".]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：200. 岛屿数量（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118439642</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118439642</guid><author>admin_o1</author><pubDate>Sat, 03 Jul 2021 14:29:57 +0800</pubDate><description><![CDATA[题目描述

给你一个由 '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 = .]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：547. 省份数量（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118439156</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118439156</guid><author>admin_o1</author><pubDate>Sat, 03 Jul 2021 14:20:52 +0800</pubDate><description><![CDATA[题目描述

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

示例 1：
输入：isCo.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：322. 零钱兑换（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118368024</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118368024</guid><author>admin_o1</author><pubDate>Wed, 30 Jun 2021 19:41:27 +0800</pubDate><description><![CDATA[题目描述

给定不同面额的硬币 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

示例 .]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：152. 乘积最大子数组（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118343049</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118343049</guid><author>admin_o1</author><pubDate>Tue, 29 Jun 2021 20:19:55 +0800</pubDate><description><![CDATA[题目描述

给你一个整数数组 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.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：300. 最长递增子序列（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118342725</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118342725</guid><author>admin_o1</author><pubDate>Tue, 29 Jun 2021 20:12:25 +0800</pubDate><description><![CDATA[题目描述

给你一个整数数组 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,.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：188. 买卖股票的最佳时机 IV（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118313532</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118313532</guid><author>admin_o1</author><pubDate>Mon, 28 Jun 2021 22:13:42 +0800</pubDate><description><![CDATA[题目描述

给定一个整数数组 prices ，它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。

设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。
注意：你不能同时参与多笔交易（你必须在再次购买前出售掉之前的股票）。

示例 1：
输入：k = 2, prices = [2,4,1]
输出：2
解释：在第 1 天 (股票价格 = 2) 的时候买入，在第 2 天 (股票价格 = 4) 的时候卖出，这笔交易所能获得利润 = 4-2 = 2 。

示例 2：
输入.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：121. 买卖股票的最佳时机（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118313359</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118313359</guid><author>admin_o1</author><pubDate>Mon, 28 Jun 2021 22:05:53 +0800</pubDate><description><![CDATA[题目描述

给定一个数组 prices ，它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票，并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润，返回 0 。

示例 1：
输入：[7,1,5,3,6,4]
输出：5
解释：在第 2 天（股票价格 = 1）的时候买入，在第 5 天（股票价格 = 6）的时候卖出，最大利润 = 6-1 = 5 。
    .]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：212. 单词搜索 II （golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118164589</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118164589</guid><author>admin_o1</author><pubDate>Wed, 23 Jun 2021 23:17:25 +0800</pubDate><description><![CDATA[题目描述

给定一个 m x n 二维字符网格 board 和一个单词（字符串）列表 words，找出所有同时在二维网格和字典中出现的单词。

单词必须按照字母顺序，通过 相邻的单元格 内的字母构成，其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。

 
示例 1：
输入：board = [["o","a","a","n"],["e","t","a","e"],["i","h","k","r"],["i","f","l","v"]], words = .]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：120. 三角形最小路径和（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118164107</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118164107</guid><author>admin_o1</author><pubDate>Wed, 23 Jun 2021 22:56:11 +0800</pubDate><description><![CDATA[题目描述

给定一个三角形 triangle ，找出自顶向下的最小路径和。
每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说，如果正位于当前行的下标 i ，那么下一步可以移动到下一行的下标 i 或 i + 1 。

示例 1：
输入：triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]
输出：11
解释：如下面简图所示：
   2
  3 4
 6 5 7
4 1 8 3
自顶向.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：79. 单词搜索（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118114945</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118114945</guid><author>admin_o1</author><pubDate>Tue, 22 Jun 2021 21:30:32 +0800</pubDate><description><![CDATA[题目描述

给定一个 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
.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：208. 实现 Trie (前缀树) （golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118050317</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118050317</guid><author>admin_o1</author><pubDate>Sat, 19 Jun 2021 11:07:29 +0800</pubDate><description><![CDATA[题目描述

Trie（发音类似 "try"）或者说 前缀树 是一种树形数据结构，用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景，例如自动补完和拼写检查。

请你实现 Trie 类：

Trie() 初始化前缀树对象。
void insert(String word) 向前缀树中插入字符串 word 。
boolean search(String word) 如果字符串 word 在前缀树中，返回 true（即，在检索之前已经插入）；否则，返回 false 。
boolean sta.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：69. x 的平方根（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/118003757</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/118003757</guid><author>admin_o1</author><pubDate>Thu, 17 Jun 2021 22:57:21 +0800</pubDate><description><![CDATA[题目描述

实现 int sqrt(int x) 函数。
计算并返回 x 的平方根，其中 x 是非负整数。
由于返回类型是整数，结果只保留整数的部分，小数部分将被舍去。

示例 1:
输入: 4
输出: 2

示例 2:
输入: 8
输出: 2
说明: 8 的平方根是 2.82842..., 
     由于返回类型是整数，小数部分将被舍去。

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/sqrtx
著作权归领扣网络所有。商业转载请联系官方授权，.]]></description><category></category></item><item><title><![CDATA[LeetCode刷题：52. N皇后 II（golang版）]]></title><link>https://blog.youkuaiyun.com/admin_o1/article/details/117638953</link><guid>https://blog.youkuaiyun.com/admin_o1/article/details/117638953</guid><author>admin_o1</author><pubDate>Sun, 06 Jun 2021 23:55:55 +0800</pubDate><description><![CDATA[思路
1、和前一题一样，只是结果换成了有多少种解法，小改动下即可
代码

package main

import "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&lt;n; i++ {
		u.]]></description><category></category></item></channel></rss>