gpt4 book ai didi

c - 求最长递增子序列的长度

转载 作者:行者123 更新时间:2023-11-30 15:28:01 25 4
gpt4 key购买 nike

我用 C 语言编写了一些代码,给定一个序列,应该找到最长递增子序列的长度。然而,如果不正确,它总是返回长度 4。

这是迄今为止我的代码:

int LIS(int* seq, int* temp_seq, int seq_size)  
{int i, j;

for(i=0; i<seq_size; i++);
{
temp_seq[i]=0;
}
for(i=1; i<seq_size; i++);
{
for(j=1; j<seq_size; j++)
{
if (seq[i]<temp_seq[j])
seq[i]=temp_seq[j];

else if (seq[i]>temp_seq[j])
seq[i]=temp_seq[j+1];
}
}
return(sizeof temp_seq);
}

我做错了什么?

此外,我应该注意到该序列列出了从 1 到 n 的所有整数,没有重复的数字。

最佳答案

  1. 返回错误值。 return(sizeof temp_seq);是一个常数,指针的大小temp_seq@eurythmia

  2. ;之后for(i=0; i<seq_size; i++);当然不需要,因为它完成了循环。 for(i=1; i<seq_size; i++); 相同.

  3. seq[0] 的值从未测试或保存在temp_seq中.

  4. 可能的访问已通过数组末尾 seq[i]=temp_seq[j+1];

  5. 代码似乎想要清除 temp_seq[]然后设置全部seq[]temp_seq[] .

关于c - 求最长递增子序列的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26761577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com