软件工程实验一

题目一: 删除排序数组中的重复数字

描述:

给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。

不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。

给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]

public class Solution {
/**
* @param A: a array of integers
* @return : return an integer
*/
public int removeDuplicates(int[] nums) {
// write your code here
{
int n=nums.length;
int i=0;
int m;
while(i<n-1)
{
if(nums[i]==nums[i+1])
{
for(m=i+1;m<n-1;m++)
nums[m]=nums[m+1];
n--;
}
else
{i=i+1;}
}
return n;
}

}

}

题目二:买卖股票的最佳时期

描述:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。

给出一个数组样例 [3,2,3,1,2], 返回 1

public class Solution {
/**
* @param prices: Given an integer array
* @return: Maximum profit
*/
public int maxProfit(int[] prices) {
// write your code here

if(prices.length==0||prices==null)
{return 0;}

int a=0;
for(int i=0;i<prices.length;i++)
{
for(int m=i+1;m<prices.length;m++)
{
a=Math.max(a, prices[m]-prices[i]);

}
}
return a;
}
}

题目三:爬楼梯

描述:假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部。

比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法

返回 3

public class Solution {
/**
* @param n: An integer
* @return: An integer
*/
public int climbStairs(int n) {
// write your code here

if(n==0)
{
return 1;
}
else{
int a[]=new int[n+1];
a[0]=1;
a[1]=1;
int i=2;
for( i=2;i<n+1;i++)
{
a[i]=a[i-2]+a[i-1];
}
return a[n];
}
}
}

时间: 2024-10-24 15:20:51

软件工程实验一的相关文章

软件工程实验一--编程随机生成30个四则运算,算数包括100以内的整数和真分数。

软件工程实验一: ——编程随机生成30个四则运算,算数包括100以内的整数和真分数. 实验思路:先利用rand()函数随机生成两个算数,包括100以内的整数和真分数,生成100以内的整数,用rand()%100,为了避免在除法运算中除数不能为零,所以运算符右边的整数直接用1+rand()%99:在随机生成真分数时,我先生成两个整数,来充当分子和分母,同样分母不能为零,用1+rand()%99.加减乘除四则运算有整数与整数之间的运算,分数与分数之间的运算,整数和分数之间的运算,分数和整数之间的运算

软件工程实验一 复利计算——单元测试

对复利计算器进行单元测试 一.实验历次题目要求 1.客户说:帮我开发一个复利计算软件. 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? 4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率

软件工程实验一 复利计算(第三次实验实验总结)

主题内容:复利计算器的第三次改进 追加题目: 4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率就应至少为多少才行呢? 附加题:6.如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少?如果换成每月

软件工程实验7

实验报告7 网易云课堂昵称:哪来的妖精 网易云课堂<软件工程(C编码实践篇)>MOOC课程作业:http://mooc.study.163.com/learn/USTC-1000002006 github   https://github.com/littlewulei/Software-Engineering-Lab.git 实验要求 为menu子系统设计接口,并写用户范例代码来实现原来的功能: 使用make和make clean来编译程序和清理自动生成的文件: 使menu子系统支持带参数的

软件工程 实验二 结对编程(第二阶段)

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)两个学生组合,每人使用一台计算机,二人共同编码,完成实验要求. 3)针对课题查阅相关资料,加深对课题的理解: 4)在结对编程工作期间,两人的角色至少切换 4 次: 5)实验过程中合作编程两人互相探讨后采用开发平台和技术,语言工具,准备实验开展工作: 6)做好试验记录和分析工作. 三.实验过程 (一)问题描述 生命游

软件工程实验一 复利计算

本次编写复利计算我使用了Java编写,有两项功能,一是根据本金计算复利终值,二是根据复利终值计算所需的本金,此时我利用了两条公式 输入本金求终值:S = P * Math.pow(1.0 + i, n) 即  复利终值=本金*(1+利率)^利率获取时间 输入终值求本金:P = S * Math.pow(1.0 + i, -n)即 所需本金=复利终值*(1+利率)^(-利率获取时间) 在Java中运行结果如下: 1.输入本金求终值 2.输入终值求本金 首先在第一个输入框内输入1.2来选择计算方向,

软件工程实验1

删除排序数组中的重复数字 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. public class Solution { /** * @param A: a array of integers * @return : return an integer */ public int removeDuplicates(int[] nums) { // write your code her

软件工程实验一 复利计算——观赏其他团队工程

我评论的: 05 卢琪 http://www.cnblogs.com/xiseven/p/5392425.html 06 邹育萍 http://www.cnblogs.com/zou779596337/p/5392381.html 08 周诗琦 http://www.cnblogs.com/sr1zsq/p/5393497.html 25 陈庆祥 http://www.cnblogs.com/qing8/p/5392804.html#3408933

软件工程实验课

今天我更加深刻理解这么绘制图形和使用绘图软件,感谢老师的耐心指导,以及小伙伴的帮助.我们小组一起讨论这么绘制图形,和几张难懂的图形该怎么绘制.我们有细致的分工,每个人都指导自己该完成什么内容,并且在完成自己的任务后帮助需要帮助的伙伴.这就是团结吧. 看着大家全身心投入到项目中的样子,自己都被感动了.我今天也完成了自己的任务,就是完成两个用例图,一个顺序图和两个用例规约.编写用例规约主要是合同管理用例规约和租金管理用例规约.很高兴自己按时完成任务. 原文地址:https://www.cnblogs