[加减号查找数字序列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[加减号查找数字序列相关的知识,希望对你有一定的参考价值。
我想编写一个函数来查看我的负号序列中是否有数字。我的序列是从整数构建的。下一个整数是上一个整数的+1或-1。按此顺序,我想高效地找到一个数字。我应该寻找哪种算法?
输入:0,1,2,1,0,-1,0,1,2,3,4,3,2,3,4,5 ...输出:可以说索引32
答案
[我认为Michael的方法(请参阅注释)比这有效得多,但是如果您想要最少的代码量,那么也许:
private OptionalInt findNumber(List<Integer> ints, int n)
return IntStream.range(0, ints.size()).
filter(i -> ints.get(i).equals(n)).
findFirst();
一个简单的测试:
@Test
public void findNumber()
List<Integer> ints =
List.of(0, -1, 0, 1, 2, 3, 2, 1, 0, -1, -2, -3, -2, -1, 0, 1, 2, 3, 4, 5);
OptionalInt index = findNumber(ints, 4);
Assertions.assertTrue(index.isPresent());
Assertions.assertEquals(18, index.getAsInt());
以上是关于[加减号查找数字序列的主要内容,如果未能解决你的问题,请参考以下文章