删除有序数组的重复元素and爬楼梯and股票买入的最佳时期

---------1-----------
#include "stdafx.h" #include"iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int a[10]={1,4,4,5,6,7,7,8,9,10}; int i=0; int j=0; for(i=0;i<10;i++) { if(a[i]==-1)     {    break; } if(a[i]==a[i+1]) { j++; for(int k=i;k<=10-j;k++) {   a[k]=a[k+1];   a[11-j]=-1; } i--; } } for(int i=0;i<10-j;i++) { cout<<a[i]; cout<<","; if(a[i]==-1) { break; } } cout<<endl<<10-j; return 0; } //注意点:数组不像链表,可以自动删除内存空间,也不会自己赋值为零;所以赋一个特殊值方便判断即可; //有可能会有多个重复值出现,在循环中利i--使其回到两比较元素中的后一位,而不是将后面两位进行比较;


-----------2--------------
#include "stdafx.h" #include"iostream" using namespace std; int f(int n) { if(n==1) { return 1; } else if(n==2) { return 2; } else { return f(n-1)+f(n-2); } } int _tmain(int argc, _TCHAR* argv[]) { int n; cin>>n; f(n); cout<<"所走的方式:"; cout<<f(n); return 0; }



--------3----------
#include "stdafx.h"
#include"iostream"
using namespace std;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
	int a[10]={10,3,9,5,3,2,5,7,9,1};
	int interest=0;
	int n=0;
	for(int i=1;i<10;i++)
	{
		for(int j=0;j<9;j++)
		{
			if(j+i>=10)
			{
				break;
			}
				n=a[i+j]-a[j];
				if(n>interest)
				{
					interest=n;
				}
		}
	}
	cout<<"最大利润:";
	cout<<interest;
	return 0;

posted on 2017-03-08 22:29  0703HQ  阅读(170)  评论(0编辑  收藏  举报

导航