
leetCode
leetcode专栏,先刷他个百十个题看看感觉怎么样,感觉好接着刷题
andrewbytecoder
勿在浮沙筑高台
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
go语言定义二维数组
使用go语言二维数组 go语言不用管理内存,很多地方使用起来确实很方便,但是在算法方面确实没有C++优秀,特别是缺少像STL一样优秀模板,定义一个二维数组需要进行如下复杂的操作: go语言的二维数组定义和初始化比较特殊,需要先初始化行数再初始化列 假设要定义一个,行数为row, 列数为column的二维数组,怎可以按照如下方式实现 // 先初始化一个二维数组,数组为row行,每行存储一个切片,具体大小先不定 dp := make([][]int, row) // 然后再为每行申请一个 column的数组放入原创 2022-03-28 22:17:33 · 4622 阅读 · 0 评论 -
LFUCache
LFUCache LFU是Least Frequently Used的缩写,即最不经常最少使用算法,也是一种常用的页面置换算法,选择访问计数器最小的页面,并予以淘汰。 根据LFU的策略,我们每次访问对象都需要更新访问计数器,当插入B的时候,发现缓存中有B,所以增加访问计数器,兵把B移动到访问计数器从大到小排序的地方。当插入一个元素时,先更新访问计数器,在移动到它排序以后的位置,如果页面中已经满了,就将末尾的元素进行剔除 当插入一个数据时,尾部有多个数据计数器值相同,这个时候插入是从相同计数器顶端开始插入原创 2022-03-13 23:47:05 · 921 阅读 · 0 评论 -
LRUCache
LRUCache LRUCache又称为最近很少使用算法,不是说这个算法最近很少使用,是算法的名字叫做最近很少使用 LRU是 Least Recently Used的缩写,即最近很少使用,是一种常用的页面置换算法,选择最近很久未使用的页面予以淘汰。 LRUCache是一种缓存策略,持有的是强引用,但是会控制在一个峰值下。它内部维护了一个队列(允许插队的队列),每当从中取出一个值时,该值就移动到队列的头部。当缓存已满而继续添加时,会将队列尾部的值移除,方便GC。LRUCache用于内存缓存,在避免程序发生OO原创 2022-03-13 16:29:56 · 1032 阅读 · 0 评论 -
算法中常用位操作
算法中常用位操作 1.1 异或操作 x ^ 0 = x x ^ 1111...1111 = ~x x ^ (~x) = 1111...1111 x ^ x = 0 a ^ b = c ==> a ^ c = b ==> b ^ c = a a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c 1.2 构造特殊的Mask,将特殊位置放0或者1 x & (~0 << n) // 将x右边n位清零 (x >> n) & 1 //.原创 2022-03-13 16:27:16 · 538 阅读 · 0 评论 -
leetCode第五题-求字符串最长回文字符串
原题链接: 最长回文字符串 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示例 2: 输入:s = “cbbd” 输出:“bb” 示例 3: 输入:s = “a” 输出:“a” 示例 4: 输入:s = “ac” 输出:“a” 提示: 1 <= s.length <= 1000 s 仅由数字和英文字母(大写和/或小写)组成 来源:力扣(LeetCode) 链接:https://leetcod原创 2021-03-07 22:24:54 · 258 阅读 · 0 评论 -
leetCode-第四题求两个数组的中位数
两数组中的中位数 原题链接: 两数组的中位数 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 示例 1: 输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2 示例 2: 输入:nums1 = [1,2], nums2 = [3,4] 输出:2.50000 解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5 示例 3:原创 2021-03-07 17:32:11 · 351 阅读 · 0 评论 -
leetCode刷题-第三题查找字符串最长子串
在给定的字符串中查找最长子串 题目链接:题目链接 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 如: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 题意分解 如abcabcbb,我们先把abc放到set或者map hash表中, 再放第四个元素的时候我们发现第四个元素a和第一个重复,这个时候我们需要将窗口向前滑动,并将原先hash表中的a元素清除 C++代码实现: // // Created by andrew原创 2021-03-07 14:34:54 · 1034 阅读 · 0 评论 -
leetCode刷题-第二题两数之和
两数之和 题目连接: 题目链接 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 示例 2: 输入:l1 = [0], l2 = [0] 输出:[0] 示例 3: 输入:l1 = [9,9,原创 2021-03-07 11:18:35 · 216 阅读 · 0 评论 -
leetCode刷题第一天--求两数之和
两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解题思路: · for j := i+1;j < k;j++ ·j肯定大于i所以不需要在判断j的有效性,因此效率更高 f.原创 2020-12-23 00:07:15 · 212 阅读 · 0 评论 -
go语言中append函数的使用
go语言中append处理slice 每次调用appen都会根据当前的cap对slice进行评估, 如果cap不够,就按照2倍长度进行扩容 package main import ( "fmt" ) /* append 是在slice原有的基础上,添加新元素 若是原先就是长度,不会替换原先的元素,而是在后面进行增加 */ func append1() { fmt.Println("========================append1=======================") s原创 2021-01-31 15:16:58 · 2991 阅读 · 0 评论 -
当map遇上range
for key,val := range slicerange出的值是副本,并不是值的引用,for循环结束之后m[key]中存储的指针值都是指向val地址,因此打印出来是: 0 -> 3 1 -> 3 2 -> 3 3 -> 3 package main import "fmt" /* 说明: m是一个int *int类型的map for range 循环的时候会创建每个元素的副本,而不是元素的引用, 所以 m[key] = &val 取的都是变量 val 的地原创 2021-01-30 23:32:44 · 276 阅读 · 1 评论 -
当defer遇上panic
panic会导致函数异常结束, 在函数异常结束之前会调用原先是defer压栈的函数 package main import "fmt" // panic调用会结束函数, 调用panic之前会先调用defer压栈的函数 // 说明defer 函数会在任何函数调用结束标志之前 先按照逆序调用原先defer的函数 /* 4 3 2 1 panic: 这里出发异常 goroutine 1 [running]: main.defer_call() /home/andrew/go/src/basi原创 2021-01-30 22:29:43 · 367 阅读 · 0 评论 -
leetCode刷题--两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 3: 输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] 输出:[8,9,9,9,0,0,0,1] 提示: 每个链表中的节点数在范围 [1, 100] 内 0 <= Node.val <= 9 题目数据保证列表表示的数字不含前导原创 2021-01-26 23:40:37 · 165 阅读 · 0 评论