摘要: 题目:如何判断单链表里面是否有环? 方法一:快慢指针法 设两个工作指针,一个快一个慢,如果有环的话,它们会必然在某点相遇。 为什么当单链表存在环时,p和q一定会相遇呢? 假定单链表的长度为n,并且该单链表是环状的,那么第i次迭代时,p指向元素i mod n,q指向2i mod n。因此当i≡2i(m 阅读全文
posted @ 2018-01-22 19:57 Curo 阅读(1625) 评论(0) 推荐(0) 编辑
摘要: 概念部分转载于http://blog.csdn.net/zwhlxl/article/details/45745825 问题描述 判断两个单链表是否相交,如果相交,给出相交的第一个点 一.两个链表都不存在环相交的 链表示意图如下所示。 解题思路 方法一 两个没有环的链表如果是相交于某一结点,如上图所 阅读全文
posted @ 2018-01-22 18:24 Curo 阅读(813) 评论(0) 推荐(0) 编辑
摘要: P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可 阅读全文
posted @ 2018-01-22 15:46 Curo 阅读(1133) 评论(0) 推荐(0) 编辑
摘要: 今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下~~~附上原文地址:http://www.cnblogs.com/sdjl/articles/1274312.html通过金矿模型介绍动态规划 对于动态规划,每个刚接触的人都需要一段时间 阅读全文
posted @ 2018-01-22 13:12 Curo 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1 //dp[i]=dp[i-vj]+1 2 #include 3 int main() 4 { 5 int dp[20]; 6 int money; 7 int useMoney[20];//这次找零,在原来的基础上需要的硬币 8 int value[]={0,2,4,5}; 9 int i,j; 10 while(~scan... 阅读全文
posted @ 2018-01-22 10:57 Curo 阅读(171) 评论(0) 推荐(0) 编辑