算法
only_on_one
每天一总结,记录自己学习编程的点点滴滴。
展开
-
促销中“满X优惠”问题的两种解法:动态规划和枚举法
问题描述:给定一个无序数组int num[n],其中放的是n中商品的价格,商家规定满m元有优惠,商品不重复购买,那么从买家的角度看如何购买才能既享受优惠又花最少钱? 问题分析:抽象成数学问题就是,从数组中取出若干个元素,使得它们之和sum为大于等于m的最小值。下面我分别从枚举法和动态规划角度介绍求解思路与代码。 1、枚举法 可能,我们最先想到的就是枚举法,n种商品一共有2^n中可能,分别计算出原创 2016-08-27 22:19:53 · 3806 阅读 · 0 评论 -
KMP-字符串快速匹配算法
之前一直保持在word文档中记录总结,最近发现C博客是个分享的好地方,记录自己学习总结的同时,也可以把总结拿出来分享,万一能帮到别人呢^_^ 花了两天,把KMP算法搞懂了,此篇旨在用通俗易懂的语言讲算法实现过程,但看此篇之前最好对朴素字符串匹配动手写过代码。好了,下面进入正题。 朴素字符串匹配算法时间复杂度为O(n*m),n/m分别为主串/子串长度,而KMP算法的时间原创 2016-08-20 19:02:48 · 3340 阅读 · 0 评论 -
动态规划之最长递增子序列(思路)
问题描述: 一个序列有N个数:A[1],A[2],…,A[N],求最长非降子序列的长度。 这是一个动态规划(Dynamic Programming)思想基本都会讲到的问题—LIS:longest increasing subsequence. 思路: 1)“子序列“和“子串”不同; 子序列在原序列中可以是不连续的,如[3,6,9]为[5,7,3,6,4,9]的子序列; 子串在原序列中必须原创 2016-08-24 15:48:20 · 571 阅读 · 0 评论 -
数组两个数之和,等于给定数
《编程之美》2.12中的题目:原创 2016-10-28 21:33:05 · 772 阅读 · 0 评论