着色问题 问题分析 假设地图共有7个区域,分别是A/B/C/D/E/F/G,对上面顺序进行编号,每个区域用一个结点表示,相邻的区域有连线,那么地图就转化成一个无向连接图。 算法设计 定义问题的解空间。图的m着色问题解空间形式为n元组{x1,…
分类:Study-notes
算法笔记之回溯法(1)
回溯法 回溯法的思想是:能进则进,进不了换,换不了退。 隐约束指对能否得到问题的可行解和最优解做出的约束。隐约束包括约束函数和限界函数。 关键步骤是: 1. 定义解空间; 2. 确定解空间的组织结构(子集树、排列数、m叉树等); 3. 搜索…
《剑指Offer》题目解析(1)
题目1 二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目解析 …
解析动态规划问题(3)
用动态分析解决0-1背包问题 有n个物品,每个物品的重量为w[i],价值为v[i],购物车容量为W。选若干个物品放入购物车,在不超过容量的前提下使获得的价值最大。 问题分析 (1)分析最优解的结构特征 (2)建立具有最优值的递归式 可以对每…
解析动态规划问题(2)
最优三角剖分 与矩阵连乘的不同点 不同点就在于递归公式的不同,最优三角剖分的递归公式如下: 当i=j的时候,m[i][j]=0; 当i<j的时候,m[i][j]=min{m[i][k]+m[k+1][j]+w(v(i-1)vkvj)}…
解析动态规划问题(1)
关于最长公共子序列(LCS) 最长公共子序列和最长公共子串是有区别的,之前我一直把它们混淆。 最长公共子串举例:假设S1={A,D,C,B,E,X,Q},S2={H,P,D,C,B,E,M,L} 那么它们的最长公共子串就是{D,C,B,E}…
《剑指Offer》题目解析(2)
题目1 滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}…