随笔分类 -  计算机算法设计与分析

摘要:1 // 1、整数划分并输出结果 2 #define MAXSIZE 7 3 int a[200]; 4 // 统计整数划分的个数 5 int q(int n, int m) { 6 if (n == 1 || m == 1) 7 return 1; 8 if (m == n){ 9 return 阅读全文
posted @ 2023-11-01 16:39 菜鸡一枚 阅读(13) 评论(0) 推荐(0) 编辑
摘要:求数组中最长递增子序列 问题:给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续),如序列 1,-1,2,-3,4,-5,6,-7的最长递增子序列长度为4(1,2,4,6) 方法一: 最笨算法,复杂度为O(n*n),设一个辅助数组用来记录以对应元素结尾的最大递增子序列的长度(即lis[ 阅读全文
posted @ 2023-10-26 20:12 菜鸡一枚 阅读(38) 评论(0) 推荐(0) 编辑
摘要:动态规划__最长上升子序列 目录 一.最长上升子序列 最长上升子序列模板 O(n ^ 2) 最长上升子序列二分优化 O(nlongn) 1017. 怪盗基德的滑翔翼 1014. 登山 1012. 友好城市 1016. 最大上升子序列和 1010. 拦截导弹 187. 导弹防御系统 二.最长公共上升子 阅读全文
posted @ 2023-10-26 20:08 菜鸡一枚 阅读(84) 评论(0) 推荐(0) 编辑
摘要:动态规划--数塔问题 动态规划–数塔问题今天学习了动态规划的数塔问题,老师给我们讲了三种方法。(1)第一种方法是原始的递归,就是从上往下看一个n层塔的最大路径问题可以转化为选出左右两个n-1层塔的最大路径问题的较大值,即:f(n)=max{ f(左,n-1), f(右,n-1) },依次向下直到第n 阅读全文
posted @ 2023-10-24 23:38 菜鸡一枚 阅读(178) 评论(0) 推荐(0) 编辑
摘要:买卖股票的最佳时机(分治,dp) 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4]输出: 5解释: 在第 阅读全文
posted @ 2023-10-24 23:28 菜鸡一枚 阅读(66) 评论(0) 推荐(0) 编辑
摘要:LEETCODE算法练习之买卖股票的最佳时机 这个题目其实在《算法导论》中有过描述,书中使用的是分治算法进行的求解。具体过程看书就可以了。提一点分治法的使用条件,由于问题看上去需要两个指针,而且确定一个“中心”之后求解就会非常简单,所以考虑分治法。 书中是伪代码,这里把真正的代码写一下。分治法在使用 阅读全文
posted @ 2023-10-24 22:04 菜鸡一枚 阅读(31) 评论(0) 推荐(0) 编辑
摘要:整数因子分解问题(多种方法) 整数因子分解问题Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description大于1的正整数n可以分解为:n=x1x2…xm。例如,当n=12 时,共有8 种不同的分解式:12=12;12=62;12=43 阅读全文
posted @ 2023-10-24 10:52 菜鸡一枚 阅读(214) 评论(0) 推荐(0) 编辑
摘要:整数因子分解问题(递归分治法、动态规划) Description大于1的正整数n可以分解为:n=x1 * x2 * … * xm。 例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6 * 2; 12=4 * 3; 12=3 * 4; 12=3 * 2 * 2; 12=2 * 6; 阅读全文
posted @ 2023-10-24 10:51 菜鸡一枚 阅读(145) 评论(0) 推荐(0) 编辑
摘要:利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性。 利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性。 CODE: /*利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性。 */ #include <stdio.h>#define END 1 << 12//4 阅读全文
posted @ 2023-10-22 20:38 菜鸡一枚 阅读(97) 评论(0) 推荐(0) 编辑
摘要:动态规划-股票问题(买卖股票的最佳时机、II、III、IV、含冷冻期、含手续费) 文章目录1. 买卖股票的最佳时机思路:代码:2. 买卖股票的最佳时机 II思路:代码:3. 买卖股票的最佳时机 III思路:代码:4. 买卖股票的最佳时机 IV思路:代码:5. 最佳买卖股票时间含冷冻期思路:代码:6. 阅读全文
posted @ 2023-10-22 20:20 菜鸡一枚 阅读(97) 评论(0) 推荐(0) 编辑
摘要:动态规划-完全背包问题(纯完全背包、零钱兑换II、组合总数 IV、零钱兑换、完全平方数、单词拆分)、纯多重背包问题 1.完全背包问题(每件物品可放多次)有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包 阅读全文
posted @ 2023-10-22 20:17 菜鸡一枚 阅读(106) 评论(0) 推荐(0) 编辑
摘要:查找算法之二分查找 目录 二分查找 算法实现 “双闭区间”实现 算法实现 python C++ 两种表示对比 大数越界处理 优点与缺点 二分查找二分查找,利用数据的有序性,通过每轮缩小一半搜索区间来查找目标元素。 使用二分查找有两个前置条件: 要求输入数据是有序的,这样才能通过判断大小关系来排除一半 阅读全文
posted @ 2023-10-22 18:59 菜鸡一枚 阅读(43) 评论(0) 推荐(0) 编辑
摘要:【刷题笔记】之二分查找(搜索插入位置。在排序数组中查找元素的第一个和最后一个位置、x的平方根、有效的完全平方数) 1. 二分查找题目链接 704. 二分查找 - 力扣(LeetCode) 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中 阅读全文
posted @ 2023-10-22 17:38 菜鸡一枚 阅读(14) 评论(0) 推荐(0) 编辑
摘要:二分查找算法(非递归) 1.二分查找算法(非递归)介绍 前面我们讲过了二分查找算法,是使用递归的方式,下面我们讲解二分查找算法的非递归方式二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找二分查找法的运行时间为对数时间 O(㏒₂n) ,即查找到需要的目标位置最多只需 阅读全文
posted @ 2023-10-21 22:50 菜鸡一枚 阅读(37) 评论(0) 推荐(0) 编辑
摘要:二分查找——递归+非递归实现(c语言) 要求: 给定n个从小到大排好序的整数序列Data[]以及待查找整数X,找到X在Data[]中的下标 若Data[i]=X,则返回i,否则返回失败标志NotFound 二分法: 现在找到序列的中点Data[Mid],与X进行比较 若相等则返回中点下标Mid 若X 阅读全文
posted @ 2023-10-21 22:48 菜鸡一枚 阅读(165) 评论(0) 推荐(0) 编辑
摘要:每日手撕一道算法题-322.零钱兑换 每日手撕一道算法题-322.零钱兑换 322. 零钱兑换 题目: 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输入: coins 阅读全文
posted @ 2023-10-19 20:06 菜鸡一枚 阅读(24) 评论(0) 推荐(0) 编辑
摘要:深入浅出算法题-零钱兑换的动态规划问题 一、 零钱兑换:硬币的最少个数 给一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的最少硬币个数 。如果没有任何一种硬币组合能组成总金额,返回-1 。 可认为每种硬币的数量是无限的。 解题 阅读全文
posted @ 2023-10-19 20:02 菜鸡一枚 阅读(329) 评论(0) 推荐(0) 编辑
摘要:动态规划十大经典案例 研究方向:NLP 动态规划(Dynamic Programming)是求多阶段决策过程(Multistep Decision Process)最优化的一种数学方法,它将问题的整体按时间或空间的特征分成若干个前后衔接的时空阶段,把多阶段决策问题表示为前后有关的一系列单阶段决策问题 阅读全文
posted @ 2023-10-19 19:09 菜鸡一枚 阅读(683) 评论(0) 推荐(0) 编辑
摘要:[LeetCode刷题笔记]122 - 买卖股票的最佳时机 II(C++/Python3/Java/暴力/动态规划/贪心) 一、题目描述给定一个整数数组 prices ,它的第 i 个元素 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多 阅读全文
posted @ 2023-10-19 18:45 菜鸡一枚 阅读(57) 评论(0) 推荐(0) 编辑
摘要:C语言——leetcode121,122算法题 leetcode121,122算法题:买卖股票的最佳时期1…给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算 阅读全文
posted @ 2023-10-19 18:41 菜鸡一枚 阅读(92) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示