数组两端取数

这是完美世界的一道笔试题,题目详述忘记了,大概记得这么一个意思:
给定一个数组nums[0~n-1];A和B分变从数组的两端交替循环选择数据,累加到自身的积分中,并且A和B都采用最优策略选择数据,求最终A和B的积分。

首先考虑考虑用深度优先算法,定义一个函数int func(int st,int len),这个函数的功能是仅考虑在数组剩余区间为[st,en]时刻及之后(之前各自的积分都重置为0),A和B的积分之差;
那么:

int func(int st,int len)
{
    if(st>en) return 0;
    if(st==en) return nums[st];
    /*如果A选择最左端数据,那么B可以选择新的最左端或者最右端,B会选择二者中A本轮积分差和以后积分差之和最小的那种方式*/
    int t1= min(nums[st]-nu
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以这样实现: ```python import numpy as np arr = np.linspace(1, 10, 10) print(arr) ``` 输出结果: ``` [ 1. 2.11111111 3.22222222 4.33333333 5.44444444 6.55555556 7.66666667 8.77777778 9.88888889 10. ] ``` ### 回答2: 要产生一个一维的等差数组,数字为1到10(两端都包含),共10个数,可以使用numpy库中的linspace函数。 首先,需要引入numpy库。使用以下代码进行引入: import numpy as np 接下来,可以使用linspace函数生成等差数组。linspace函数用于生成指定范围内的等差数列。函数需要三个参数:起始值、终止值和数列的长度。根据题目要求,起始值为1,终止值为10,数列的长度为10。 使用以下代码生成等差数组: arr = np.linspace(1, 10, 10) 最后,使用print函数打印该数组。使用以下代码完成打印: print(arr) 整体代码如下所示: import numpy as np arr = np.linspace(1, 10, 10) print(arr) 运行该代码,即可得到输出结果为: [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] 该结果即为所求的一维等差数组,数字为1到10,共10个数。请注意,由于默认浮点型,该数组中的元素为浮点数。 ### 回答3: 要生成一个一维的等差数组,可以使用numpy库中的linspace函数。该函数可以生成指定范围内的等差数列。 首先,我们需要导入numpy库: import numpy as np 然后,使用linspace函数生成等差数组: arr = np.linspace(1, 10, 10) 其中,1是数组起始值,10是数组结束值,10是生成数组的长度。 最后,使用print函数打印该数组: print(arr) 运行以上代码,我们可以得到一个包含1到10共10个等差数的一维数组: [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值