标签:数字 pack 不同的 最大利润 generated length 需要 system 题目
题目1:删除排序数组中的重复数字
描述:给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。
不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。
样例
给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。
package question1;
public class question1 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
       int a[]={1,1,2,2};
       System.out.println("The array‘s length is:"+f(a));
       System.out.print("The array is:");
		for(int i=0;i<f(a);i++)
 {
     System.out.print(a[i]+" ");
 }
	}
   static int f(int a[])
	{
		int length=a.length;
		int i,j;
                                if(length==0)return 0;
		for(i=0;i<length-1;i++)
		{
   if(a[i]==a[i+1])
			{
				for(j=i;j<length-1;j++)
				{
   a[j]=a[j+1];
				}
				length--;
				i--;
			}
			
		}
		return length;
	}
}
题目2:买卖股票的最佳时机
描述:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
样例
给出一个数组样例 [3,2,3,1,2], 返回 1
package question2;
public class question2 {
 public static void main(String[] args) {
		// TODO Auto-generated method stub
       int a[]={3,2,3,1,2};
       System.out.println(f(a));
	}
	
	
	
	static int f(int a[])
	{
		if(a==null||a.length==0)return 0;
		int i,min,maxProfit=0;
		min=a[0];
		for(i=1;i<a.length;i++)
		{
			maxProfit=Math.max(a[i]-min, maxProfit);
			if(min>a[i])
			{
				min=a[i];
			}
		}
		return maxProfit;
	}
}
题目3:爬楼梯
描述:假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?
样例
比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法
返回 3
package question2;
public class question3 {
 public static void main(String[] args) {
		// TODO Auto-generated method stub
        int n=5;
        System.out.println(f(n));
	}
	
	static int f(int n)
	{
		if(n==0)return 1;
		int step[]=new int [n+1];
	     step[0]=1;
	     step[1]=1;
	    for(int i=2;i<=n;i++)
	    {
	    	step[i]=step[i-1]+step[i-2];
	    }
		return step[n];
	}
}
标签:数字 pack 不同的 最大利润 generated length 需要 system 题目
原文地址:http://www.cnblogs.com/xiang-L/p/6511645.html