如何解决数组中的元素本身可以称为子数组吗?
例如: int arr[5]={1,2,3,4,5}; 现在我可以说每个元素都是 arr 的子数组吗?当问题要求找到具有给定目标总和的计数子数组时,我感到困惑。
解决方法
子数组是数组的连续部分。里面的数组 另一个数组。
所以数组中的每个元素都是子数组本身,因为它与上面的定义不矛盾。所以这类问题只要提到子数组就应该按照上面的定义来解释。
{1,2,3}
的 Ex 子数组是 {1}
、{2}
、{3}
、{1,2}
、{2,3}
、{1,3}
。>
数组的每个元素本身都可以被认为是一个大小为 1 的子数组。因此,给定:
int arr[5]={1,3,4,5};
1、2、3、4、5 中的每一个都是子数组:
{1},{2},{3},{4},{5}
在您提出的问题中,这很重要,因为如果一个元素本身与目标总和匹配,则它可以作为解决方案的子数组
此外,这里似乎已经回答了这个问题:Definition of subarray
,You can show all subarray by using bit-mask arrays.
for(int i=1;i<pow(2,6);i++){
int cur_sum = 0;
int v[5],cnt=0;
for(int j=0;j<5;j++){
if(i&(pow(j,2))==1){
cur_sum+=(j+1);
v[cnt++]=j+1;
}
}
if(sum==cur_sum){
for(int j=0;j<cnt;j++)cout<<v[j]<<' ';
return ;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。