javascript - 查找数组中单个数字的最长连续拉伸的长度
问题描述
以下是问题的完整描述:
//编写一个函数,它接受一个数字列表并返回单个数字的最长连续拉伸的长度。例如,在输入 [1,7,7,3] 上, // 正确的返回是 2,因为连续有两个 7。在输入 // [1,7,7,3,9,9,9,4,9] 上,正确的返回是 3,因为连续三个 9。
这是我的解决方案:
let sequenceChecker = (arr) => {
let finalNum = 0;
let secondPass = false;
const bigestNumber = arr.sort()[arr.length - 1]
arr.forEach(num => {
if(num === bigestNumber){
finalNum++
}
else if(num != bigestNumber && finalNum > 0 ){
secondPass = true
}
else if (secondPass == true && num === bigestNumber){
finalNum = 0
}
})
return finalNum
}
console.log((sequenceChecker([1,7,7,3])).toString());
console.log((sequenceChecker([1,7,7,3,9,9,9,4,9])).toString());
我真的不明白为什么我的代码不能解决这个问题。第一个 else if 语句永远不会被执行,但该语句的计算结果应该为 true,并且里面的代码应该执行。
解决方案
试试这个:我用前一个检查序列的数量 e 增加变量中的计数
var arr = [1,7,7,3,9,9,9,4,4,4,4,4,4,9,9,9,9,9,9,9];
var prev;
var count=0;
var finalnum=0;
$.each(arr, function(index,num){
if(prev != num) {
prev = num;
finalnum = (finalnum <= count ? count : finalnum);
count = 1;
}
else {
count = count + 1;
}
if(index == (arr.length - 1))
{
finalnum = (finalnum <= count ? count : finalnum);
}
});
console.log(finalnum);
推荐阅读
- hazelcast - 如何监控列表和信号量
- django - Django 前端应用程序未加载 React 组件
- javascript - react-hooks/exhaustive-deps 与测试
- powershell - 如何使用 powershell 将数据插入 Microsoft Sql?
- macos - SwiftUI:在 macOS 上的 HStack 内使用 3 个 TextField 调整 ScrollView 的大小时,应用程序崩溃
- html - html表单中的多个提交按钮和隐藏值
- design-patterns - 在 SwiftUI 中理解通信模式“Preference Key”的问题
- javascript - 如何在多复选框 onchange 事件中获取复选框值
- c - 对数级数前七项的 C 程序
- c++ - 在 Rust 中存储 `uint8_t*` C 缓冲区的哪种方式更安全?