算法
文章平均质量分 62
了解每个开源框架的算法
Notail^0^
心静脑清
展开
-
leetcode题:33. 搜索旋转排序数组
题目整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一个整数原创 2021-11-04 16:57:32 · 4339 阅读 · 0 评论 -
二分查找算法
作用可使查询得时间复杂度为O(log2n)可将有序数组一分为二进行查询,增快查询速度核心目标值( Target) —— 你要查找的值两个下标指针(left,right)中间下标值(mid)目标值和mid做等值运算,相等返回,不相等继续运算,不和其他下标值做等值返回运算left+(right-left)/2可以防止数据溢出,如用left+right/2,那么 left+right> Interger.MAX_VALUE 时,此时会导致数据溢出while循环(left<原创 2021-11-03 22:00:42 · 154 阅读 · 0 评论 -
leetcode题:55.跳跃游戏
题目给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下原创 2021-10-28 19:15:26 · 190 阅读 · 0 评论 -
leetcode题:45. 跳跃游戏 II
题目给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: nums = [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。解法—贪心我们每次在可跳范围内选择可以使得跳的更远的位置。这句话总结了算法的精髓,一一原创 2021-10-28 15:01:33 · 1493 阅读 · 0 评论 -
XXL-Job路由策略---一致性hash算法
目录前提好处缺点实现逻辑代码总结可扩展:容错性如何解决数据倾斜解决了什么问题前提路由策略有很多,轮询,随机,一致性hash,今天我们要分析的是是一致性hash,那么它有什么好处呢?好处可扩展很好的容错性缺点数据倾斜问题: 可用虚拟节点解决实现逻辑将地址列表中每一个地址进行hash计算,存到TreeMap中,TreeMap会根据key进行排序,(key为hash,value为地址)将jobId进行hash计算,得到hash值,然后在TreeMap中找到hash值最相近的hash值原创 2021-08-31 16:14:35 · 3145 阅读 · 1 评论