自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 资源 (2)
  • 收藏
  • 关注

原创 LeetCode438. 找到字符串中所有字母异位词Golang版

LeetCode438. 找到字符串中所有字母异位词Golang版1. 问题描述给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。2. 思路滑动窗口3. 代码func findAnagrams(s string, p string) []int { var res []i

2021-03-30 22:01:34 172

原创 LeetCode424. 替换后的最长重复字符Golang版

LeetCode424. 替换后的最长重复字符Golang版1. 问题描述给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过 10410^{4}104。2. 思路滑动窗口右窗口不断向右移,统计 窗口中出现频次最高的元素右窗口移动过程中,窗口大小-窗口中最高频次的元素>k时,左窗口右移记录最大的窗口大小,即为所求。3. 代码func cha

2021-03-29 15:39:28 182

原创 LeetCode 209. 长度最小的子数组Golang版

LeetCode 209. 长度最小的子数组Golang版1. 问题描述给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。2. 思路滑动窗口3. 代码func minSubArrayLen(target int, nums []int) int { var res int = l

2021-03-29 14:50:12 203

原创 LeetCode3. 无重复字符的最长子串Golang版

LeetCode3. 无重复字符的最长子串Golang版1. 问题描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。2. 思路滑动窗口3. 代码func lengthOfLongestSubstring(s string) int { if len(s) == 0 { return 0 } var freq [256]int result, left, right := 0, 0, -1 for left < len(s) { /

2021-03-28 22:02:43 315

原创 LeetCode88. 合并两个有序数组Golang版

LeetCode88. 合并两个有序数组Golang版1. 问题描述2. 思路2.1. 思路1声明一个新数组,最后再赋值给nums12.2. 思路2从后向前填充3. 代码思路1代码func merge(nums1 []int, m int, nums2 []int, n int) { var nums []int = make([]int, m+n) i := 0 j := 0 k := 0 for i < m && j &

2021-03-28 18:55:45 292

原创 LeetCode83. 删除链表中的重复元素Golang版

LeetCode83. 删除链表中的重复元素Golang版1. 问题描述存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。2. 思路遍历过程中,记录当前节点的前一个节点,如果发现当前节点重复,删除当前元素3. 代码/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next

2021-03-28 18:33:38 156

原创 LeetCode70. 爬楼梯Golang版

LeetCode70. 爬楼梯Golang版1. 问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数2. 思路到第n层的方法设为f(n),则f(n) = f(n - 1) + f(n - 2)3. 代码func climbStairs(n int) int { if n == 1 || n == 2 { return n } pre1 := 1

2021-03-28 18:27:09 66

原创 LeetCode69. x的平方根Golang版

LeetCode69. x的平方根Golang版1. 问题描述实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。2. 思路二分查找注意边界3. 代码func mySqrt(x int) int { if x == 1 { return 1 } low := 0 high := x for low < high { /

2021-03-28 18:11:00 104

原创 LeetCode67. 二进制求和Golang版

LeetCode67. 二进制求和Golang版1. 问题描述给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。2. 思路2.1. 思路1每1位相加后,进位和结果逻辑如下 digit:= ai + bj + carry carry = digit / 2 digit = digit % 23. 代码3.1 思路1代码func addBinary(a string, b string) string {

2021-03-28 17:30:51 228

原创 LeetCode66. 加1Golang版

LeetCode66. 加1Golang版1. 问题描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。2. 思路从后向前遍历,找到第一位不为9的加1并返回如果连续为9,变为0,循环结束还没返回,说明全部为9,首位补13. 代码func plusOne(digits []int) []int { for i := len(digits)-1

2021-03-28 16:52:21 102

原创 LeetCode58. 最后一个单词的长度Golang版

LeetCode58. 最后一个单词的长度Golang版给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。2. 思路从后向前,找到最后一个单词,最后一个字母的下标从最后一个单词下标,向前,找到最后一个单词第一个字母的下标3. 代码func lengthOfLastWord(s string) int { var lastIndex int var fi

2021-03-28 16:07:18 98

原创 LeetCode53. 最大子序和Golang版

LeetCode53. 最大子序和Golang版1. 问题描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。2. 思路把nums[0],赋给sum和res从nums[1]开始遍历,如果sum < 0,sum = nums[i]如果sum > 0, 就向后加取sum和res中最大的结果,赋值给res3. 代码func maxSubArray(nums []int) int { sum := nums[0]

2021-03-28 15:59:31 107

原创 LeetCode38. 外观数列Golang版

LeetCode38. 外观数列Golang版1. 问题描述给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:2. 思路2.1. 思路1遍历数组,统计连续相同元素的个数。3. 代码3.1. 代码1

2021-03-28 15:15:04 132

原创 LeetCode35. 搜索插入位置Golang版

LeetCode35. 搜索插入位置Golang版1. 问题描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。2. 思路二分查找二分查找的细节:while (left < right) 退出循环的时候有 left == right 成立,因此无需考虑返回 left 还是 right划分 [left, mid] 与 [mid + 1, right] ,mid 被分到左边,对应 in

2021-03-27 21:49:23 74

原创 LeetCode27. 移除元素Golang版

LeetCode27. 移除元素Golang版1. 问题描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。2. 思路迭代3. 代码func

2021-03-27 20:33:14 78

原创 LeetCode28. 实现strStr()Golang版

LeetCode28. 实现strStr()Golang版实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。2. 思路3. 代码func strStr(haystack string, needle string) int { if needle == "" { return 0 } if len

2021-03-27 09:23:32 104

原创 LeetCode26. 删除有序数组中的重复项Golang版

LeetCode26. 删除有序数组中的重复项Golang版1. 问题描述给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:2. 思路nums[0]赋给当前指示的数cu

2021-03-26 21:52:44 185

原创 LeetCode21. 合并两个有序链表Golang版

LeetCode21. 合并两个有序链表Golang版1. 问题描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。2. 思路2.1. 递归2.2. 迭代3. 代码3.1. 递归代码/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func mergeTwoList

2021-03-26 21:42:21 297

原创 LeetCode20. 有效的括号Golang版

LeetCode20. 有效的括号Golang版1. 问题描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。2. 思路利用栈的思想解决,匹配到左括号入栈,匹配到右括号出站3. 代码func isValid(s string) bool { if len(s) == 0 { return true } if len

2021-03-26 21:27:51 165

原创 LeetCode14. 最长公共前缀Golang版

LeetCode14. 最长公共前缀Golang版1. 问题描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。2. 思路2.1. 思路1找到最短的字符串根据最短的字符串,暴力求解2.2. 思路23. 代码3.1. 思路1代码func longestCommonPrefix(strs []string) string { if strs == nil || len(strs) == 0 { return ""

2021-03-26 21:22:45 288

原创 LeetCode 13. 罗马数字转整数Golang版

LeetCode 13. 罗马数字转整数Golang版1. 问题描述2. 思路从倒数第二个遍历,如果s[i]<s[i+1]的小,result = result - s[i]如果s[i]>s[i+1]的大或相等,result = result +s[i]3. 代码func romanToInt(s string) int { // n := len(s) dic := map[byte] int { 'I' : 1, 'V'

2021-03-26 21:07:57 140

原创 LeetCode9. 回文数Golang版

LeetCode9. 回文数Golang版1. 问题描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。2. 思路转换为字符串,使用双指针遍历3. 代码func isPalindrome(x int) bool { if x > math.MaxInt32 || x < math.MinInt32 { return

2021-03-26 20:55:14 78

原创 LeetCode7. 整数反转Golang版

LeetCode7. 整数反转Golang版1. 问题描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。2. 思路除留余数法3. 代码func reverse(x int) int { var result int for x !=0 { num := x % 10 r

2021-03-26 20:52:00 102

原创 LeetCode1. 两数之和Golang版

LeetCode1. 两数之和Golang版1. 问题描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。2. 思路遍历一遍的方式是,遍历的过程中,判断target - nums[j]是否存在。3. 代码func twoSum(nums []int, target int) []int {

2021-03-26 20:17:33 247

原创 赛码1.股神Golang版

赛码1.股神Golang版1. 问题描述有股神吗?有,小赛就是!经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天…依此类推。为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算买股票的第n天每股股票值多少钱?2. 思路3. 代码package mainimport ( "bufio" "fmt" "os" "strconv")func main() { sc := bu

2021-03-26 10:54:05 229

原创 赛码2. 翻转数组Golang版

赛码2. 翻转数组Golang版1. 问题描述3. 代码package mainimport ( "bufio" "fmt" "os" "sort" "strconv" "strings")func main() { sc := bufio.NewScanner(os.Stdin) // bs := make([]byte, 2000 * 1024) // sc.Buffer(bs, len(bs)) sc.Scan() N, _ := strconv.Ato

2021-03-26 09:35:36 636

转载 LeetCode1049. 最后一块石头的重量2Golang版

LeetCode1049. 最后一块石头的重量2Golang版1. 问题描述有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回 0。2. 思路背包3.

2021-03-25 18:58:58 79

原创 LeetCode 416. 分割等和子集Golang版

LeetCode 416. 分割等和子集Golang版1. 问题描述给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 2002. 思路背包3. 代码func canPartition(nums []int) bool { sum := 0 for i := 0; i < len(nums); i++ { sum += nums[i] }

2021-03-25 16:48:51 108

原创 LeetCode52. N皇后2Golang版

LeetCode52. N皇后2Golang版1. 问题描述n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。2. 思路回溯法模板3. 代码func totalNQueens(n int) int { var res int var chessboard []string initialRow := "" for i := 0; i &lt

2021-03-25 11:36:14 59

原创 LeetCode51. N皇后Golang版

LeetCode51. N皇后Golang版1. 问题描述n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。2. 思路回溯法模板题3. 代码func solveNQueens(n int) [][]string { var res [][]string va

2021-03-25 10:46:50 143

原创 LeetCode90. 子集2Golang版

LeetCode90. 子集2Golang版1. 问题描述给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。2. 思路回溯模板3. 代码func subsetsWithDup(nums []int) [][]int { var res [][]int var path []int used := make([]bool, len(nums)) sort.Ints(nums) backtrac

2021-03-25 09:12:38 161

原创 LeetCode 47. 全排列2Golang版

LeetCode 47. 全排列2Golang版1. 问题描述给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。2. 思路回溯模板3. 代码func permuteUnique(nums []int) [][]int { var res [][]int var path []int used := make([]bool, len(nums)) // 去重一定要先排序 sort.Ints(nums) backtrack

2021-03-25 08:47:53 203

原创 LeetCode 491. 递增子序列Golang版

LeetCode 491. 递增子序列Golang版1. 问题描述给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是 2 。2. 思路回溯模板3. 代码func findSubsequences(nums []int) [][]int { var res [][]int var path []int backtracking(nums, 0, path, &res) return res}func backtracki

2021-03-24 21:36:10 172

原创 LeetCode78. 子集Golang版

LeetCode78. 子集Golang版2. 问题描述给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。2. 思路回溯模板题3. 代码func subsets(nums []int) [][]int { var res [][]int var path []int backtracking(nums, 0, path, &res) return res

2021-03-24 20:37:23 369

原创 LeetCode93. 复原IP地址Golang版

LeetCode93. 复原IP地址Golang版1. 问题描述给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是

2021-03-24 19:09:00 244

原创 LeetCode131. 分割回文串Golang版

LeetCode131. 分割回文串Golang版1. 问题描述给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。2. 思路回溯法模板题3. 代码func partition(s string) [][]string { var res [][]string var path []string backtracking(s, 0, path, &res) re

2021-03-24 16:35:49 151

原创 LeetCode40. 组合总和2Golang版

LeetCode40. 组合总和2Golang版1. 问题描述给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。2. 思路回溯模板题3. 代码func combinationSum2(candidates []int, target int) [][]int { var

2021-03-24 15:35:08 191

原创 LeetCode39. 组合总和Golang版

LeetCode39. 组合总和Golang版1. 问题描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。2. 思路回溯法,模板题3. 代码func combinationSum(candidates []int, target int) [][]int {

2021-03-24 14:49:01 206

原创 LeetCode17. 电话号码的字母组合Golang版

LeetCode17. 电话号码的字母组合Golang版1. 问题描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。2. 思路回溯模板3. 代码func letterCombinations(digits string) []string { var res []string if len(digits) == 0 { return res

2021-03-24 13:55:29 132

原创 LeetCode216. 组合3Golang版

LeetCode216. 组合3Golang版1. 问题描述找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。2. 思路回溯模板3. 代码func combinationSum3(k int, n int) [][]int { var path []int var res [][]int backtracking(n, k, 0, 1, path,

2021-03-24 10:55:43 115

mysql8.0,java jdbc驱动.zip

最近做了个小东西,用到了mysql8.0和java便将用到的工具整理了一下。

2019-07-15

mysql8.0jdbc驱动.zip

最近做了个小东西,用到了mysql8.0和java便将用到的工具整理了一下。

2019-07-15

空空如也

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

TA关注的人

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