我被问题的结束函数部分卡住了,arr[start]/arr[end]以及我没能理解代码。问题如下:
给定一个大小为N的未排序数组A,只包含非负整数,求一个连续的子数组,该子数组加到给定的数组S上。
您不需要读取、输入或打印任何内容。任务是完成函数subarraySum(),它将arr、N和S作为输入参数,并返回一个列表,其中包含从左边开始的第一个子数组的开始和结束位置,其中sum等于S。列表中的两个索引应该按照基于1的索引。如果找不到这样的子数组,则返回-1。
def subArraySum(arr,n,sum):
curr_sum = 0
start = 0
end=0
i = 0
while end <= n-1:
if curr_sum<sum:
curr_sum=curr_sum+arr[end]
end=end+1
while curr_sum>sum:
curr_sum=curr_sum-arr[start]
start=start+1
if curr_sum==sum:
break
if curr_sum != sum:
return[-1]
else:
return start+1, end
这段代码正在寻找相加到给定数字的最早的连续序列。例如:
1 1 2 4 5 2
是一个由6个数字组成的序列。如果我们寻找第一个加到7的序列,我们将得到1、2和4,这三个序列由两个索引定义:start
和end
:
start|
1 1 2 4 5 2
end|
请注意,end
位于end之后。这是一个普遍的惯例。另外,任何给定的时间,curr_sum
是子序列中所有数字的和。在上面,7。
这里是连续子数组和的问题,我的问题是这个问题期望和为真,这意味着有一个子数组可以被3的因子整除。我不明白这是怎么回事,对我来说,这显然是假的,但所有提交返回为真的这个测试。有人能解释一下我可能漏掉了什么吗?
我想做一个刽子手游戏。每转一圈,用户猜一个字母。如果他们猜对了,他们可以再猜一次。否则,它们剩余的可用猜测将减少1,猜测的字母将放入一个数组中。 当用户点击零剩余猜测时,程序应该询问他们是否想再次玩。如果他们回答“是”,则应重新启动游戏;如果他们回答“否”,则程序结束。 我遇到的问题是用于猜测的数组,以及重新启动游戏。 此外,程序启动时每隔一段时间都会出错。错误是 线程“main”java中出现异
尝试过这样做,但仍然没有按升序排序。此方法的目的是接收一个整数数组,并使用输入整数数组的值创建一个新的整数数组。然后对新创建的数组进行排序。但这种排序方法似乎不起作用。
Traceback(最近调用最后一次):文件"C:\用户\josej\AppData\本地\程序\Python\Python310\lib\站点包\mysql\连接器\abstracts.py",第553行,在配置DEFAULT_CONFIGURATION[key]KeyError:'datebase' 在处理上述异常期间,发生了另一个异常: 回溯(最近一次调用):文件“C:\Users\jose
你好,我是新来的数据结构,我有一些问题理解行ds.remove(ds.size()-1);。有谁能帮帮我吗? 类解决方案{ }
这是一个问题:输入10个数字(来自user),然后从user输入另一个数字。如果该数字是这10个enterd数字中的一个,则打印yes,否则打印No。我不知道怎么解决这个。