![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Abby.R
码农
展开
-
剑指 Offer 10- I. 斐波那契数列(leetcode)
题目: 算法 斐波那契数列(Fibonacci sequence),又称黄金分割数列、兔子数列,是数学家列昂纳多·斐波那契于1202年提出的数列。 斐波那契数列为1、1、2、3、5、8、13、21、34……此数列从第3项开始,每一项都等于前两项之和,递推公式为F(n)=F(n-1)+F(n-2),n≥3,F(1)=1,F(2)=1。 做法 递归 public static int fib0(int n) { if (n<2) { return n; } return fib(n-原创 2020-10-08 09:43:00 · 177 阅读 · 0 评论 -
最长公共子序列-Python-动态规划
1.题目内容 题名为:最长公共子序列。 题目要求: 1.用动态规划算法思想设计最长公共子序列问题求解算法,并且对给定的数据(分两类:统一和自选)进行验证。 2.要求分析算法的时间复杂性。 3.与穷举算法,直接递归法,备忘录法进行对比并且形成分析报告。 2.算法分析 1.算法原理: 字符串X,长度为m,从1开始数; 字符串Y,长度为n ,从1开始数; Xi=﹤x1,⋯,xi﹥即X序列的前i个字符(1≤i≤m) Yj=﹤y1,⋯,yj﹥即Y序列的前j个字符 (1≤j≤n) LCS(X , Y) 为字符串X和Y的原创 2020-06-21 21:00:33 · 1283 阅读 · 0 评论 -
Python解决 0-1背包问题-实验贪心算法-动态规划等
1.题目内容 题名为:0-1背包问题。 题目要求: 动态规划: 1.用动态规划法设计0-1背包问题的算法,并且对给定的加权数据进行验证。要求分析算法时间复杂性并且形成分析报告。 2.算法分析 动态规划 1.算法原理 依次把每一件物品都放入背包,当背包可容纳值大于等于当前物品重量,与之前可容纳物品的总价值进行对比,如果超出容量,则不换,没有超出换。 2.实现步骤 创建一个value[i][j]数组,表示在面对第 i 件物品,且背包容量为 j 时所能获得的最大价值, 1)当j < w[i] 的情况,这时原创 2020-06-21 20:57:48 · 3134 阅读 · 0 评论 -
python解LeetCode 28.实现 strStr()
实现 strStr() 文章目录实现 strStr()题目问题分析代码 题目 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = "hello", nee...原创 2020-03-13 16:13:14 · 134 阅读 · 0 评论 -
python解LeetCode 27. 移除元素
27. 移除元素 文章目录27. 移除元素题目问题分析 题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = ...原创 2020-03-12 18:35:20 · 168 阅读 · 0 评论 -
python解LeetCode 26. 删除排序数组中的重复项
删除排序数组中的重复项 文章目录删除排序数组中的重复项题目问题分析代码 题目 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数...原创 2020-03-12 17:43:51 · 111 阅读 · 0 评论 -
力扣算法--两数之和 (python)
两数之和 难度:简单 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 ...原创 2020-03-04 18:55:24 · 221 阅读 · 0 评论 -
力扣题--分糖果II (python解)
分糖果2 排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。 然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n ...原创 2020-03-05 12:45:45 · 941 阅读 · 0 评论