Go
剑髯202000
海纳百川,有容乃大;
壁立千仞,无欲则刚!
展开
-
【GO】简单的令牌桶限速实现
使用go里面的chan实现一个简单的令牌桶限速。原创 2022-09-15 19:42:15 · 229 阅读 · 1 评论 -
leetcode: 两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/intersectio原创 2020-07-13 20:39:17 · 112 阅读 · 0 评论 -
leetcode: 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的连续子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum著作权归领扣网络所有。商业转载请联系官方授权原创 2020-06-29 10:02:41 · 122 阅读 · 0 评论 -
leetcode: 统计位数为偶数的数
给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。示例 1:输入:nums = [12,345,2,6,7896]输出:2解释:12 是 2 位数字(位数为偶数) 345 是 3 位数字(位数为奇数) 2 是 1 位数字(位数为奇数) 6 是 1 位数字 位数为奇数) 7896 是 4 位数字(位数为偶数) 因此只有 12 和 7896 是位数为偶数的数字示例 2:输入:nums = [555,901,482,1771]输出:1 解释: 只有 177原创 2020-06-24 23:34:42 · 213 阅读 · 0 评论 -
leetcode: 最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3-10^3 <= nums[i] <= 10^3-10^4 <原创 2020-06-24 17:10:12 · 109 阅读 · 0 评论 -
leetcode: 模式匹配
题目你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",“go"是"b”),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pattern字符串。示例 1:输入: pattern = "abba", value = "dogcatcatdog"输出: t原创 2020-06-24 13:30:45 · 208 阅读 · 0 评论 -
leetcode: 数组异或操作
题目给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。 "^" 为按位异或 XOR 运算符。示例 2:输入:n = 4, start =原创 2020-06-22 17:47:44 · 220 阅读 · 0 评论 -
leetcode: 重新排列数组
题目给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。示例 1:输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7] 解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7]示例 2:输入:nums = [1,2,3,4,4,3,原创 2020-06-22 17:37:52 · 156 阅读 · 0 评论 -
leetcode: 拥有最多糖果的孩子
题目给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例 1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true] 解释:孩子 1 有 2 个糖果,如果原创 2020-06-21 00:57:51 · 72 阅读 · 0 评论 -
leetcode: 一堆数组的动态和
题目给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。示例 2:输入:nums = [1,1,1,1,1]输出:[1,2,3,4,5]解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1]原创 2020-06-21 00:45:22 · 124 阅读 · 0 评论 -
leetcode: 验证回文串
题目给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome著作权归领扣网络所有。商业转载请联系官方授权,非商业转载原创 2020-06-19 17:16:26 · 106 阅读 · 0 评论 -
leetcode: 无重复字符的最长子串
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子原创 2020-06-15 11:10:53 · 76 阅读 · 0 评论 -
leetcode: 三数之和
题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum以下是我的原创 2020-06-12 16:31:23 · 83 阅读 · 0 评论 -
leetcode: 下一个更大元素 I
题目给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例1输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于num1中的数字4,你无法在第二个数组中找到下>一个更大的数原创 2020-06-11 16:54:23 · 124 阅读 · 0 评论 -
leetcode: 每日温度
题目请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。*以下是我golang的实现,仅供参考原创 2020-06-11 16:28:15 · 311 阅读 · 0 评论 -
算法:数组排序(3)
排序算法快速排序任意选取一个基准数据,把大于基准和小于基准的数据分列两边;然后再分别对大于基准的数列和小于基准的数列进行递归操作,直至数组有序以下是golang的实现,仅供参考package mainimport "fmt"func main() { var lists = [][]int{ []int{2, 4, 1, 7, 5, 9}, []int{9, 6,...原创 2020-04-21 21:02:03 · 108 阅读 · 0 评论 -
算法:数组排序(2)
排序算法归并排序采用递归思想,将数组分割成小的数组,分别排序,然后再将排序后的小数组合并,完成整个数组的排序。以下是我用golang的实现,仅供参考。package mainimport "fmt"func main() { var lists = [][]int{ []int{2, 4, 1, 7, 5, 9}, []int{9, 6, 8, 2, 1, 6, ...原创 2020-04-21 14:52:07 · 102 阅读 · 0 评论 -
算法:数组排序(1)
排序算法冒泡排序法循环遍历数组,依次比较相邻的两个数据,根据大小关系决定是否进行互换。每一次遍历会把当前最大的数移到最后面,经过n次遍历即可完成排序插入排序法把数组分为有序区间和无序区间,每次从无序区间取出一个数,放到有序区间正确的位置。重复此过程,直至无序区间为空选择排序法把数组分为已排序区间和未排序区间,每次取出未排序区间最小值,放入已排序区间末尾。重复此过程,直至未排序区间为空...原创 2020-04-18 00:45:39 · 159 阅读 · 0 评论 -
算法:判断是否是有效的括号组合
题目: 输入由“{","[","(",")","]","}"," "组成的任意字符串,判断是否是有效的。括号必须按照正确的顺序出现; 所有括号必须正确的闭合。思路:按顺序遍历字符串,左括号放入slice里面,遇到右括号则判断前一个是否为搭配的左括号,如果是则弹出;如果不是则字符串无效。最终遍历完之后,slice应该为空,否则说明有未闭合的括号,字符串无效。package...原创 2020-04-15 23:07:49 · 295 阅读 · 0 评论