一、题目地址
https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof/comments/
二、具体代码
/**
* @param {number[]} nums
* @return {boolean}
*/
// hashmap + 遍历
// 时间复杂度: O(1)
// 空间复杂度: O(1)
var isStraight = function(nums) {
let set = new Set();
let min = 14, max = 0;
for(let i=0; i<nums.length; i++) {
// nums[i]为顺子,进行下一次循环
if(nums[i] === 0) {
continue;
}
max = Math.max(nums[i], max);
min = Math.min(nums[i], min);
if(set.has(nums[i])) {
return false;
}
set.add(nums[i]);
}
return max - min < 5;
};
let res = isStraight([1,2,3,4,5]);
console.log(res);
/**
* @param {number[]} nums
* @return {boolean}
*/
// 排序 + 遍历
// 时间复杂度: O(1)
// 空间复杂度: O(1)
var isStraight = function(nums) {
let joker = 0;
nums.sort((a, b) => a - b);
for(let i=0; i<nums.length; i++) {
if(nums[i] === 0) {
joker++;
} else if(nums[i] === nums[i+1]) {
return false;
}
}
return nums[4] - nums[joker] < 5;
};
let res = isStraight([1,3,4,5,2]);
console.log(res);
三、参考链接
四、补充部分
关注公众号:【深漂程序员小庄】:
内含丰富的学习资源和面试经验(不限前端、java),还有学习交流群可加,并且还有各大厂大佬可一起交流学习,一起进步~添加小庄微信,回复【加群】,可加入互联网技术交流群: