![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python算法
文章平均质量分 55
Algorithm-007
算法领域优质作者
展开
-
LeetCode003无重复字符的最长子串之滑动窗口
题目描述给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。【题目来源:力扣(LeetCode)】滑动窗口(Sliding Window)滑动窗口算法是在给定特定窗口大小的数组或字符串上执行要求的操作。该算法可以将一部分问题中的嵌套循环转变为一个单循环,因此它可以减少时间复杂度。滑动窗口算法在一个特定大小的字符串或数组上进行操作,而不在整个字符串和数组上操作,就像队列一样,一端在添加元素的过程中另一端也在删除元素,以此来达到不断更新窗口的元素直到匹配出我们最需要的结果...原创 2022-04-23 10:10:54 · 176 阅读 · 1 评论 -
LeetCode011盛最多水的容器之双指针
题目描述给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。【来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with-most-water】双指针-对撞指针对撞指针指的是在遍历对象的过程中,原创 2022-04-23 10:09:38 · 139 阅读 · 0 评论 -
LeetCode035搜索插入位置之二分查找
题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。【题目来源:力扣(LeetCode)】二分查找百科:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。首先,假设表中元素是按从小到大排列,将表中间mid位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关原创 2022-04-23 10:06:41 · 70 阅读 · 0 评论 -
LeetCode001两数之和(TwoSum)的两种解法
题目描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。【题目来源:力扣(LeetCode)】解法一:穷举法暴力解题思路:根据nums中的索引,用穷举法将所有不同的两个数相加,当和为target,则返回这两个数的索引值,即为我们所需要的数组下标。若找不到两个数的和为target,则原创 2022-04-19 15:21:56 · 447 阅读 · 0 评论 -
Python算法经典:约瑟夫环
问题来历:据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k-2个人(因为第一个人已经被越过),并杀掉第k个人。接着,再越过k-1个人,并杀掉第k个人。这个过程沿着圆圈一直进行原创 2021-11-01 09:07:13 · 6175 阅读 · 1 评论