码迷,mamicode.com
首页 >  
搜索关键字:两重for循环    ( 61个结果
HDU 1087
题意:求上升序列的最大和。 思路:简单DP。两重循环:dp[i]表示以v[i]结尾的最大和,状态转移方程dp[i]=max(dp[j]+v[i],dp[i]) (在v[j] AC代码: #include #include #include #include using namespace std; int main() { int n,dp[1005],v[1005]; whil...
分类:其他好文   时间:2015-07-19 11:53:09    阅读次数:113
[LeetCode][Java] Longest Common Prefix
题目: Write a function to find the longest common prefix string amongst an array of strings. 题意: 写出一个函数,找到一组数组中的最长公共子串。 算法分析: 需要构建两重循环。第一层是最短子串的长度,另一层是遍历字符串数组中的每个成员。 brute force的想法,以第一个字符串为标准,对于...
分类:编程语言   时间:2015-07-09 13:17:56    阅读次数:138
!HDU 1506 Largest Rectangle in a Histogram-dp-(dp降低时间复杂度)
题意:有宽度相同高度不同的长方体挨着放在一起,求能构成的面积最大的长方体 分析:也是思维的转换。这题的主思路不是dp,dp只是起一个辅助作用。具体做法:枚举每个长方体,求以这个长方体的高度为高的最大的长方体面积,不断更新答案。用一个l[i]和r[i]数组表示第i个矩形的左右比它高的远的位置,所以面积 s=a[i]*(r[i]-l[i]+1).但是直接两重循环会超时,这时用了一点dp的思想,这里用...
分类:其他好文   时间:2015-06-23 10:17:49    阅读次数:154
HDU 1337 The Drunk Jailer--(模拟题找规律)
题意:有n个监狱,共n轮,第 i 轮警察会去编号为 i 的倍数的监狱,如果是锁的就开锁,如果是开的就锁上,求n轮过后有多少犯人会逃出来 分析:这题实际上是个模拟题,因为数据很小我直接用两重循环模拟的,如果数据很大的话,就不能直接模拟了,模拟题卡时间多半是找规律。           这题的规律是:如果一个监狱被查看了偶数次的话相当于则什么都没发生,还是锁的,也就是说找没有锁上的监狱只要n以内找...
分类:其他好文   时间:2015-06-17 11:28:10    阅读次数:103
递归O(NlgN)求解逆序数
导言第一次了解到逆序数是在高等代数课程上。当时想计算一个数列的逆序数直觉就是用两重循环O(n^2)暴力求解。现在渐渐对归并算法有了一定的认识,因此决定自己用C++代码小试牛刀。逆序数简介由自然数1,2…,n组成的不重复的每一种有确定次序的排列,称为一个n级排列(简称为排列);或者一般的,n个互不同元...
分类:其他好文   时间:2015-06-11 00:08:07    阅读次数:186
冒泡排序
上篇博客咱们讲了选择排序,不难发现,当数据较多时选择排序的效率就很低了。那么有没有另一种排序的方法可以提高一下效率呢?答案是肯定的。下面我们来讲一下冒泡排序。冒泡排序也是通过两重循环,外层循环和选择排序一样通过n-1次找最小(或最大)值,只是内循环的比较实现方式不同。它是通过n-1次找最大值得方式实...
分类:编程语言   时间:2015-06-02 10:39:07    阅读次数:137
选择排序
n个数的选择排序是一个两重循环的问题:外循环控制求最小值得次数,n个数求最小值,要用n-1循环;内循环是用来完成求最小值的过程,假定当前元素a[i]是最小值,假设内循环变量是j让a[i]与其后的所有元素a[j]逐个比较,i+1a[j]) 6 { 7 ...
分类:编程语言   时间:2015-06-02 09:16:38    阅读次数:129
1152 - 4 Values whose Sum is 0
紫书上叫中途相遇法,还有一个名字感觉更加妥帖一点,叫:折半枚举。          有时候,当问题的规模较大时,无法枚举所有元素的组合,但能够枚举一半的元素组合,此时,将问题拆成两半后分别枚举,再合并他们的结果这一方法往往非常有效。 两重循环加二分,总复杂度为n^2logn  这里值得一提的是对集合CD的存储方式,我是用了一个有序数组,也可以用其他方式。 #include using nam...
分类:其他好文   时间:2015-05-13 21:56:06    阅读次数:138
广度优先搜索BFS
广度优先搜索可以形成一个广度优先搜索树算法时间为O(V+E),两重循环输入:图g,起点start(int)需要的数据结构:队列Q、color数组(存放每个顶点的颜色)算法过程:1. 预处理:1)color数组的每个值都赋为white(表示没被访问过);2)队列Q为空队列2. 处理起点:1)color...
分类:其他好文   时间:2015-05-08 19:48:00    阅读次数:133
Python实现排序(冒泡、快排、归并)
Thomas H.Cormen 的《算法导论》上介绍的几个经典排序算法的Python实现。1、冒泡排序: 简单的两重循环遍历,使最小(最大)的值不断地往上升(下沉)而实现的排序,算法时间为O(n2)。 代码如下: 1 def up_sort(a): 2 # 冒泡排序 3 ...
分类:编程语言   时间:2015-04-29 23:17:04    阅读次数:215
61条   上一页 1 ... 3 4 5 6 7 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!