自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 380. O(1) 时间插入、删除和获取随机元素

int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。每个元素应该有 相同的概率 被返回。bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true;否则,返回 false。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true;否则,返回 false。你必须实现类的所有函数,并满足每个函数的 平均 时间复杂度为 O(1)。

2023-08-21 17:48:38 102

原创 238. 除自身以外数组的乘积

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请不要使用除法,且在 O(n) 时间复杂度内完成此题。输入: nums = [-1,1,0,-3,3]输入: nums = [1,2,3,4]输出: [24,12,8,6]输出: [0,0,9,0,0]

2023-08-20 08:46:27 121

原创 274. H 指数

根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且每篇论文 至少 被引用 h 次。由于研究者有 3 篇论文每篇 至少 被引用了 3 次,其余两篇论文每篇被引用 不多于 3 次,所以她的 h 指数是 3。解释:给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 3, 0, 6, 1, 5 次。输入:citations = [3,0,6,1,5]输入:citations = [1,3,1]

2023-08-20 08:35:45 130

原创 121. 买卖股票的最佳时机

解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。解释:在这种情况下, 没有交易完成, 所以最大利润为 0。输入:prices = [7,6,4,3,1]输入:[7,1,5,3,6,4]

2023-08-20 08:24:54 95

原创 228. 汇总区间

返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x。输出:[“0”,“2->4”,“6”,“8->9”]输入:nums = [0,2,3,4,6,8,9]输入:nums = [0,1,2,4,5,7]输出:[“0->2”,“4->5”,“7”]“a->b” ,如果 a!“a” ,如果 a == b。

2023-08-19 11:00:59 103

原创 219. 存在重复元素 II

输入:nums = [1,2,3,1,2,3], k = 2。输入:nums = [1,2,3,1], k = 3。输入:nums = [1,0,1,1], k = 1。

2023-08-19 09:19:02 87

原创 290. 单词规律

这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。输入: pattern = “abba”, s = “dog cat cat dog”输入:pattern = “abba”, s = “dog cat cat fish”

2023-08-19 08:46:35 107

原创 205. 同构字符串

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。给定两个字符串 s 和 t ,判断它们是否是同构的。输入:s = “egg”, t = “add”

2023-08-18 16:11:30 90

原创 167. 两数之和 II - 输入有序数组

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。因此 index1 = 1, index2 = 2。

2023-08-18 15:05:53 297

原创 125. 验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。输入: s = “A man, a plan, a canal: Panama”解释:“amanaplanacanalpanama” 是回文串。字母和数字都属于字母数字字符。

2023-08-18 14:43:03 54

原创 6. N 字形变换

【代码】6. N 字形变换。

2023-08-18 14:34:16 31

原创 27. 移除元素

【代码】27. 移除元素。

2023-08-16 20:36:51 33

原创 143. 重排链表

不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。输入:head = [1,2,3,4,5]输入:head = [1,2,3,4]输出:[1,5,2,4,3]输出:[1,4,2,3]

2023-08-10 11:16:37 82

原创 128. 最长连续序列

解释:最长数字连续序列是 [1, 2, 3, 4]。输入:nums = [0,3,7,2,5,8,4,6,0,1]请你设计并实现时间复杂度为 O(n) 的算法解决此问题。输入:nums = [100,4,200,1,3,2]

2023-08-08 16:55:21 294

原创 415. 字符串相加

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。输入:num1 = “11”, num2 = “123”输入:num1 = “456”, num2 = “77”输入:num1 = “0”, num2 = “0”

2023-08-08 10:58:18 73

原创 5. 最长回文子串

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。给你一个字符串 s,找到 s 中最长的回文子串。解释:“aba” 同样是符合题意的答案。输入:s = “babad”输入:s = “cbbd”

2023-08-08 10:39:36 75

原创 3. 无重复字符的最长子串

请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。输入: s = “abcabcbb”输入: s = “pwwkew”输入: s = “bbbbb”

2023-08-08 09:49:50 70

原创 54. 螺旋矩阵

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]输出:[1,2,3,6,9,8,7,4,5]

2023-08-07 16:50:20 75

原创 139. 单词拆分(leetcode刷题记录)

输入: s = “catsandog”, wordDict = [“cats”, “dog”, “sand”, “and”, “cat”]解释: 返回 true 因为 “applepenapple” 可以由 “apple” “pen” “apple” 拼接成。输入: s = “applepenapple”, wordDict = [“apple”, “pen”]输入: s = “leetcode”, wordDict = [“leet”, “code”]注意,你可以重复使用字典中的单词。

2023-08-07 10:37:33 67

原创 200. 岛屿数量(leetcode刷题记录)

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

2023-08-07 09:56:31 76

原创 gin框架学习

去go官网下载对应的版本。

2023-08-05 15:40:05 220

原创 57. 插入区间(leetcode刷题记录)

在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

2023-08-04 13:18:50 63

原创 50. Pow(x, n) (leetcode刷题记录)

【代码】50. Pow(x, n) (leetcode刷题记录)

2023-08-04 11:15:09 40

原创 43. 字符串相乘(leetcode刷题记录)

注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。

2023-08-04 10:46:50 80

原创 38. 外观数列(leetcode刷题记录)

描述前一项,这个数是 1211 即 “ 一 个 1 + 一 个 2 + 二 个 1 ” ,记作 “111221”描述前一项,这个数是 21 即 “ 一 个 2 + 一 个 1 ” ,记作 “1211”「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。描述前一项,这个数是 11 即 “ 二 个 1 ” ,记作 “21”描述前一项,这个数是 1 即 “ 一 个 1 ”,记作 “11”

2023-08-03 21:39:32 227

原创 80. 删除有序数组中的重复项 II (力扣刷题)

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

2023-08-03 17:09:11 186

原创 go语言实现LRU

对应leetcode官网链接。

2023-07-28 22:56:13 426

原创 c++实现递归和非递归判断一颗二叉树是否是平衡二叉树

c++实现递归和非递归判断一颗二叉树是否是平衡二叉树。

2023-07-28 11:17:28 54

原创 c++实现求二叉树的最大宽度

【代码】c++实现求二叉树的最大宽度。

2023-07-26 22:43:38 88

原创 elasticsearch面试八股文

总结起来,Elasticsearch的存储架构是由索引、分片和副本组成的,利用分布式的方式将数据分散在多个节点上。更新机制采用近实时的方式,通过索引操作和分布式协调来处理文档的更新和写入操作。:ES的数据组织单元是索引,每个索引可以包含多个类型(Types),类似于数据库中的表。索引是由一个或多个分片(Shard)组成的,用于将数据水平分割和分布在集群中的多个节点上。:ES采用了近实时的更新机制,即文档的索引和搜索操作不会立即生效,而是需要经过一小段时间的延迟。,因此写入的数据在1秒后才能被搜索到。

2023-07-22 21:34:36 1104

原创 mysql面试八股文

因此,当表中存在大量空记录时,使用SELECT COUNT()会比SELECT COUNT(1)更加耗费资源,因为前者会统计空记录,而后者则会忽略它们。此外,当我们需要统计某一特定字段的非空记录数时,应该使用SELECT COUNT(field_name)的方式,而不是SELECT COUNT(*)或SELECT COUNT(1)。这种方式会比使用SELECT COUNT(*)或SELECT COUNT(1)更加高效,因为它只需要计算指定字段的记录数量,而不用去统计整个表中的记录数。

2023-07-21 15:52:26 152

原创 将字母异位词组合在一起

输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。输入: strs = [“a”]输入: strs = [“”]输出: [[“a”]]输出: [[“”]]

2023-07-21 14:24:02 47

原创 网络编程八股文

4.所以为了安全的传输公钥, 需要用到数字证书, 数字证书是具有公信力、大家都认可的, 服务端向客户端发送公钥时, 可以把公钥和服务端相关信息通过hash算法生成消息摘要, 再通过数字证书。1.客户端向服务器发送数据之前, 需要先建立tcp连接, 所以先建立tcp连接, 建立完tcp连接后, 服务端会先给客户端发送公钥, 客户端拿到公钥后就可以用来加密数据了,:异步非阻塞IO, 使用AIO读取数据的时候, 线程不会阻塞, 并且当有数据可读时候, 会通知给线程, 不需要线程主动去查询。

2023-07-21 13:54:37 103

原创 c++八股文总结

分析:线程1不满足条件被阻塞,然后线程2运行,改变了条件,线程2发行条件改变了通知线程1运行,然线程1不满足条件被阻塞,然后线程2运行,改变了条件,线程2发行条件改变了通知线程1运行,然后线程2结束,然后线程1继续运行,然后线程1结束,为了确保线程1先执行,在创建线程2之前我们sleep了2秒。分析:信号量的值代表空闲的服务窗口,每个窗口一次只能服务一个人,有空闲窗口,开始服务前,信号量-1,服务完成后信号量+1。如果我们能够实现这样一种方法,程序的效率无疑会大大提高,而这种方法正是条件变量!

2023-07-18 21:34:17 260

原创 交替打印奇数和偶数

【代码】交替打印奇数和偶数。

2023-07-18 11:25:17 33

原创 设计模式归纳

创建型模式: 工厂模式结构型模式: 代理模式,适配器模式,装饰器模式行为型模式:关注系统中对象间相互切换, 观察者模式, 责任链模式, 模板方法当其中某个对象状态发生变化的时候, 其他依赖的相关对象都可以获得通知并且做出更新。监听器事件而无法一起工作的两个类能够一起工作, 不会破坏原有的一些信息。myBatis中的日志框架。

2023-07-18 09:58:00 39

原创 docker学习

使用命令拉取最新的portainer应用。在浏览器中输入应用ip+端口号。就可以访问刚才部署好的容器。此时使用命令修复问题,

2023-07-17 22:50:59 65

原创 c++实现简单版本前缀树

【代码】c++实现简单版本前缀树。

2023-07-17 21:44:40 32

原创 redis八股文

1.redis故障, -引入集群解决2.redis中大量key ttl 过期, --尽量把ttl岔开, 随机ttl值3.加入限流机制4.加多级缓存。

2023-07-17 14:03:10 106

原创 mysql慢查询以及优化

UUId: 简单, 性能好,没有顺序, 没有业务含义, 存在泄露mac地址风险。redis,mongodb,zk等中间件: 增加系统复杂度和稳定性。数据库主键:实现简单, 单调递增, 具有业务可读性, 强依赖db,存在性能瓶颈, 存在暴漏业务信息风险。

2023-07-17 13:53:48 46

c++实现多线程下载http资源

c++实现多线程下载同一个http资源文件。

2023-07-17

剑指offer编程题66道题目描述及java代码实现汇总

66道编程题,题目描述及java代码具体实现。自己手动整理,值得下载学习。

2018-05-13

现代数据库

华科数据库安全课程的课件,对于提前学好这门课有帮助

2014-12-18

空空如也

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

TA关注的人

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