自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(301)
  • 收藏
  • 关注

原创 AI重塑了我的工作流

OpenAI 的研究主管 Lilian Weng 曾经写过一篇博客叫做《 LLM Powered Autonomous Agents 》,其中就很好的介绍了 Agent 的设计框架,她提出了“Agent = LLM + 规划 + 记忆 +工具使用”的基础架构,其中大模型 LLM 扮演了 Agent 的“大脑”。2.3. Tools(工具):通过学会调用外部不同类型 API 来获取模型(通常在预训练后很难修改)中缺少的额外信息,代码执行能力,访问专有信息源等(例如获取此时此刻的天气、联网网搜索等)。

2024-05-27 17:04:01 1155 1

原创 hive结合Hbase实现实时数据处理和批量分析

结合HBase和Hive使用,可以让你充分利用HBase的实时数据处理能力和Hive的强大数据分析能力,适用于需要同时处理OLTP和OLAP的场景。但是在实际应用中,需要根据具体的业务需求和数据特性,合理设计和调整数据架构,以确保HBase和Hive的有效集成和使用。

2024-05-25 08:15:53 1038

原创 kafka权威指南(阅读摘录)

在使用 Kafka 构建数据管道时,通常有两种使用场景:第一种,把 Kafka 作为数据管道的两个端点之一,例如,把 Kafka 里的数据移动到 S3 上,或者把 MongoDB 里的数据移动到 Kafka 里;第二种,把 Kafka 作为数据管道两个端点的中间媒介,例如,为了把 Twitter 的数据移动到 ElasticSearch 上,需要先把它们移动到 Kafka 里,再将它们从 Kafka 移动到 ElasticSearch 上。我们有必要为主题创建大量的分区,在负载增长时可以加入更多的消费者。

2023-08-03 16:19:25 1474

原创 微信读书:长期投资(阅读摘录)

当我们投资股票时,许多日子里的股价低于成本,我们的投资是亏损的,即使最终的结果从长远来看是非常正面的。然而,值得重申的是,如果我们没有经过充足的考虑,我们就不要轻率地购买股票,这是一个赔钱的方法。因为世界上从来没有一个人聪明到能预见一切,即使我们能把所有人的脑力集中在一个人的头脑里,他也不可能同时考虑所有的事情,不靠长期积累的历史实践经验是不可能做到的。我们没有设定具体的销售或利润目标,这点并不适用于所有的公司,但我已经提到过,对实现目标的焦虑是当今公司最大的错误之一,因为它可能导致短视的短期决策。

2023-07-29 09:20:56 299

原创 微信读书:从Paxos到Zookeeper:分布式一致性原理与实践(阅读摘录)

目前,绝大部分的关系型数据库都是采用二阶段提交协议来完成分布式事务处理的,利用该协议能够非常方便地完成所有分布式事务参与者的协调,统一决定事务的提交或回滚,从而能够有效地保证分布式数据一致性,因此二阶段提交协议被广泛地应用在许多分布式系统中。另一方面,由于硬件和网络原因而造成的消息不完整问题,只需一套简单的校验算法即可避免——因此,在实际工程实践中,可以假设不存在拜占庭问题,也即假设所有消息都是完整的,没有被篡改的。然而,在所有的通讯员中可能会存在叛徒,这些叛徒可以任意篡改消息,从而达到欺骗将军的目的。

2023-07-02 11:20:50 215

原创 Java资深工程师面试之chatGPT自问自答版

在这个岗位上,您需要展现您的Java编程技能、系统设计和架构能力、解决问题的能力以及领导和团队合作能力。下面是一些常见的Java资深工程师面试问题和答案,希望对您有所帮助。以上是我对Java资深工程师面试可能会问到的一些问题的回答,希望能够对您有所帮助。当然,不同公司和面试官的要求和偏好也可能有所不同,您可以根据实际情况做适当调整和准备。欢迎来到Java资深工程师面试!

2023-04-03 21:53:32 654 1

原创 牛客网高频算法题系列-BM19-寻找峰值

原理:因为左右都是负无穷,对于中间的元素,如果nums[mid] > nums[mid + 1],也就是mid部分递减,加上左边负无穷,所以mid的左边一定会有峰值;同理,如果nums[mid] < nums[mid + 1],加上右边负无穷,所以mid的右边一定会有峰值。给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。如果不存在以上特殊情况,则从数组的第二位开始遍历数组,判断是否是峰值。

2022-10-10 22:21:56 327

原创 牛客网高频算法题系列-BM18-二维数组中的查找

在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。因为原二维数组是严格有序的,即从左到右递增、从上到下递增,所以可以采用二分查找的方式进行处理。

2022-10-09 20:44:40 311

原创 牛客网高频算法题系列-BM17-二分查找-I

给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1。最后,如果二分查找没找到等于target的值,返回-1。首先,考虑特殊情况,判断如果数组为空,返回-1。请实现无重复数字的升序数组的二分查找。

2022-10-08 20:28:25 327

原创 牛客网高频算法题系列-BM16-删除有序链表中重复的元素-II

给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。首先,考虑特殊情况,如果链表为空或者只有一个结点,不会有重复的元素,返回原链表。最后,返回新构造的不重复元素的链表。

2022-10-04 14:21:15 549

原创 牛客网高频算法题系列-BM15-删除有序链表中重复的元素-I

删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次

2022-06-08 10:08:49 227 1

原创 牛客网高频算法题系列-BM14-链表的奇偶重排

给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出

2022-06-07 09:47:55 146

原创 牛客网高频算法题系列-BM13-判断一个链表是否为回文结构

给定一个链表,请判断该链表是否为回文结构

2022-06-06 12:26:51 195

原创 牛客网高频算法题系列-BM12-单链表的排序

单链表的排序

2022-06-05 12:36:19 198

原创 牛客网高频算法题系列-BM11-链表相加(二)

假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数

2022-06-04 11:59:51 227

原创 牛客网高频算法题系列-BM10-两个链表的第一个公共结点

输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空

2022-06-03 10:16:26 123

原创 牛客网高频算法题系列-BM9-删除链表的倒数第n个节点

给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针

2022-06-02 09:23:48 225

原创 牛客网高频算法题系列-BM8-链表中倒数最后k个结点

描述:输入一个长度为 n 的链表,设链表中的元素的值为 a~i~ ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表

2022-06-01 09:49:27 176

原创 牛客网高频算法题系列-BM7-链表中环的入口结点

牛客网高频算法题系列-BM7-链表中环的入口结点题目描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。原题目见:BM7 链表中环的入口结点解法一:双指针法使用两个指针,fast 与 slow。它们起始都位于链表的头部。随后,slow 指针每次向后移动一个位置,而fast 指针向后移动两个位置。如果链表中存在环,则 fast 指针最终将再次与 slow 指针在环中相遇。如果相遇了,从相遇处到入口结点的距离与头结点与入口结点的距离相同。所以将fast重新设置

2022-05-31 09:52:04 226

原创 牛客网高频算法题系列-BM6-判断链表中是否有环

牛客网高频算法题系列-BM6-判断链表中是否有环题目描述判断给定的链表中是否有环。如果有环则返回true,否则返回false。原题目见:BM6 判断链表中是否有环解法一:双指针法使用两个指针,fast 与 slow。它们起始都位于链表的头部。随后,slow 指针每次向后移动一个位置,而fast 指针向后移动两个位置。如果链表中存在环,则 fast 指针最终将再次与 slow 指针在环中相遇。原理可参考:双指针算法原理详解解法二:哈希法使用HashSet记录链表中的结点,然后遍历链表

2022-05-30 09:46:16 231

原创 牛客网高频算法题系列-BM5-合并k个已排序的链表

牛客网高频算法题系列-BM5-合并k个已排序的链表题目描述合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。原题目见:BM5 合并k个已排序的链表解法一:分治法分治法,可以将大问题分解成小问题,然后继续分解成最小的子问题并解决之。具体处理过程如下,将k个链表分解成2部分处理,递归处理这2部分,并调用 BM4 合并两个排序的链表 中的方法将2个合并好的链表进行合并,最小的子问题的条件是:没有待合并的链表,直接返回空。如果只有一个链表,则不需要合并,直接返回该链表。如果不

2022-05-29 17:21:27 164

原创 牛客网高频算法题系列-BM4-合并两个排序的链表

牛客网高频算法题系列-BM4-合并两个排序的链表题目描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0 <= n <= 1000,-1000 <= 节点值 <= 1000要求:空间复杂度 O(1),时间复杂度 O(n)原题目见:BM4 合并两个排序的链表解法一:链表遍历首先,判断特殊情况,如果链表一为空,直接返回链表二;如果链表二为空,直接返回链表一。否则,先声明一个新的假头结点,然后遍历链表一和链

2022-05-28 18:53:53 284

原创 牛客网高频算法题系列-BM3-链表中的节点每k个一组翻转

牛客网高频算法题系列-BM3-链表中的节点每k个一组翻转题目描述将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。原题目见:BM3 链表中的节点每k个一组翻转解法一:递归使用递归的方式处理每k个一组的结点,具体处理方式如下:首先用tail记录每次翻转的尾部,就是第k+1个结点,从头结点开始,遍历链表,找到第k+1个结点,如果当前结点数不够k个,则不用反转直接返回;然后从链表头开始遍

2022-05-27 18:01:59 214

原创 牛客网高频算法题系列-BM2-链表内指定区间反转

牛客网高频算法题系列-BM2-链表内指定区间反转题目描述将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。原题目见:BM2 链表内指定区间反转解法一:链表遍历,指针交换因为起始位置可能是头结点,所以首先设置一个虚拟的头结点dummyNode并将next指向原有的头结点,然后处理过程如下:首先遍历链表,找到起始位置m的前一个结点pre,用来记录反转前的结点;然后用cur和next记录pre的next结点,用next记录cu

2022-05-26 16:31:24 247

原创 牛客网高频算法题系列-BM1 反转链表

牛客网高频算法题系列-BM1 反转链表题目描述给定一个单链表的头结点pHead(该头节点是有值的),长度为n,反转该链表后,返回新链表的表头。原题目见:BM1 反转链表解法一:结点反转首先,如果head为空或者只有一个结点,直接返回。否则,分别用first和next指针指向链表的前两个结点,并将它们的next指针域反转,然后继续往后遍历处理链表的后续结点直到将最后一个结点反转。注意,需要将head头结点的next指向null。最后,返回first结点,即为反转后的新链表的头结点。

2022-05-25 17:55:27 254

原创 LeetCode-459-重复的子字符串

重复的子字符串题目描述:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/repeated-substring-pattern/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:字符串遍历首先,判断特殊情况,当该字符串只有一个字符时,不可能由子串重复构成,所

2022-04-30 13:31:49 248

原创 LeetCode-496-下一个更大元素 I

下一个更大元素 I题目描述:给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/next-great

2022-04-29 16:45:05 293

原创 LeetCode-485-最大连续 1 的个数

最大连续 1 的个数题目描述:给定一个二进制数组, 计算其中最大连续 1 的个数。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/max-consecutive-ones/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:数组遍历首先,考虑特殊情况,如果原数组为空,不可能有连续的1,直接返回0。否则,遍历数组,并记录每一波连续出现的1出现的最大长度,最后返回之。publ

2022-04-28 14:19:59 163

原创 LeetCode-448-找到所有数组中消失的数字

找到所有数组中消失的数字题目描述:给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出

2022-04-27 18:12:18 237

原创 LeetCode-190-颠倒二进制位

颠倒二进制位题目描述:颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。示例说明请见LeetCode官网。来源:力扣(Leet

2022-04-26 19:45:04 95

原创 LeetCode-187-重复的DNA序列

重复的DNA序列题目描述:所有 DNA 都由一系列缩写为 ‘A’,‘C’,‘G’ 和 ‘T’ 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/repeated-dna-sequences/著作

2022-04-25 16:37:01 283

原创 LeetCode-441-排列硬币

排列硬币题目描述:你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/arranging-coins/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:穷举法简单的累加,直到大于n为止,最后

2022-04-24 21:26:46 260

原创 LeetCode-279-完全平方数

完全平方数题目描述:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl

2022-04-23 19:32:02 410

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

除自身以外数组的乘积题目描述:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/product-of-array-except-self/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:数组遍历大

2022-04-22 16:53:33 460

原创 LeetCode-209-长度最小的子数组

长度最小的子数组题目描述:给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [nums l, numsl+1​​, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/著作权归领扣网络所有。

2022-04-21 21:57:49 337

原创 LeetCode-189-旋转数组

旋转数组题目描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotate-array/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:数组遍历首先,可以知道

2022-04-20 21:46:36 215

原创 LeetCode-152-乘积最大子数组

乘积最大子数组题目描述:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-subarray/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:穷举法首先,如果数组nums只有一个元素,直接返回这个数。否则,通过穷举出所有可

2022-04-19 21:50:57 363

原创 LeetCode-392-判断子序列

判断子序列题目描述:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。进阶:如果有大量输入的 S,称作 S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://

2022-04-18 22:08:25 175

原创 LeetCode-215-数组中的第K个最大元素

数组中的第K个最大元素题目描述:给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:数组排序这里首先考虑的

2022-04-17 20:35:43 185

原创 LeetCode-230-二叉搜索树中第K小的元素

二叉搜索树中第K小的元素题目描述:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:二叉树的中序遍历二叉搜索树的特性即中序遍历结果就是节点的顺序排列

2022-04-16 21:36:58 838

空空如也

空空如也

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

TA关注的人

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