题目描述
有N个正整数组成的一个序列,给定一个整数sum,求长度最长的的连续子序列使他们的和等于sum,返回该子序列的长度,如果没有满足要求的序列返回-1。
输入描述
第1行有N个正整数组成的一个序列。
第2行给定一个整数sum。
输出描述
长度最长的的连续子序列使他们的和等于sum,返回该子序列的长度,如果没有满足要求的序列返回-1。
写了两天,换了几种思路没写出来,看了牛客网上的代码,觉得可以学习借鉴。
学习代码1:(来源:博主https://www.nowcoder.com/users/587904743)
#include<stdio.h>
int main(){
int n;
while(scanf("%d",&n)==1){//如果有输入的话
int x,num,a[10]={0};//
while(n){
x=n%10;//x是n除以十的余数,也就是从右往左的数字
if(a[x]==0){//如果这个数字没出现过
a[x]=1;//那么使得这个下标在数组中对应的值为1