码迷,mamicode.com
首页 > 编程语言 > 详细

小算法总结

时间:2017-10-03 00:23:25      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:wap   ++i   stdout   i+1   stdio.h   pen   highlight   algorithm   nbsp   

最大子序列和

dp转移方程  sum[i] = max{sum[i-1]+a[i],a[i]}

int MaxSum(int n)
{
    int sum=0,tmp=0;
    for(int i=0;i<n;i++)
    {
        if(tmp>0)
            tmp+=a[i];
        else
            tmp=a[i];
        if(tmp>sum)
            sum=tmp;
    }
    return sum;
}

  

递归求全排列

先处理第一层,比如123  第一位置分别和第一个位置、第二个位置、第三个位置交换 ->{123  213  321}

再递归处理第二层  比如 123 第二位置分别和第二位置、第三位置交换 ->{ 123 132}

再递归处理第三层 比如 123 第三位置和第三位置交换 ->{123}

然后就是回溯分别处理

#include <stdio.h>
#include <algorithm>
using namespace std;

int ans = 0;

void permutation(int k, int n, int a[])
{
    if(k == n-1){
        ans+=1;
        for(int i = 0; i < n; ++i)
            printf("%d ", a[i]);
        puts("");
    }else{
        for(int i = k; i < n; ++i){
            swap(a[k],a[i]);
            permutation(k+1, n, a);
            swap(a[k],a[i]);
        }
    }
}

int main()
{
    freopen("1.txt","w",stdout);
    int a[100];
    int n = 3;
    for(int i = 0; i < n; ++i)
        a[i] = i+1;
    permutation(0, n, a);
    printf("%d\n",ans);
    return 0;
}

  

 多做点记录,只有好处,没坏处。认真一点,进个大公司!

小算法总结

标签:wap   ++i   stdout   i+1   stdio.h   pen   highlight   algorithm   nbsp   

原文地址:http://www.cnblogs.com/ya-cpp/p/7622997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!