c - 如何在整数数组中找到模式?
问题描述
一周前我做了作业,我必须用 C 语言编写一个函数。该函数获取一个正整数数组,它必须返回数组中的下一个数字。数组看起来像这样:{1,2,3,1,2,3,4,1,2,3,1,2,3,4,1,2,3,-1}; -1 表示数组的结尾。
我知道函数必须返回的数字是 1,但是,如何编写模式查找算法?我在互联网上没有找到任何解决方案,因为关于模式搜索的所有其他问题都与字符串有关,必须找到的模式已经给出。
解决方案
如果模式的长度为1
,那么您将拥有a[k+1] == a[k]
所有可能的k
。
更一般地说,您将拥有a[k+plen] == a[k]
正确的plen
(模式长度)和所有可能的k
.
所以确定plen
从1
... 开始,在你的情况下,你会得到7
because a[7]==a[0]
, a[8]==a[1]
, ... a[16]==a[9]
,所以只需 return a[17-7]
。
推荐阅读
- python - 即使数据丢失,如何获取 idxmax 和 idxmin 列?
- python - 如何在视图测试中检查响应内容
- c# - 如何从访问 batabas 查询中获取标签上的输出
- java - 如何正确地将simpleStringProperty中的字符串值显示到listView上
- python - 如何完全匹配前一组,包括不区分大小写?
- c - 如何使用 Hoare Triple 验证该功能?
- acumatica - 打开 DataReader 相关问题
- mysql - Bash 函数返回似乎无法正常工作
- json - 绑定 json - 表单组
- node.js - 如何在 Gremlin 中通过 Node.js 使用 tryNext()?